@@ -66,9 +66,50 @@ def test_web_download(self, mock_add):
66
66
self .image_id , self .uri )
67
67
with mock .patch .object (script_utils ,
68
68
'get_image_data_iter' ) as mock_iter :
69
- mock_iter .return_value = b"dddd"
70
- web_download_task .execute ()
71
- mock_add .assert_called_once_with (self .image_id , b"dddd" , 0 )
69
+ mock_add .return_value = ["path" , 4 ]
70
+ mock_iter .return_value .headers = {}
71
+ self .assertEqual (web_download_task .execute (), "path" )
72
+ mock_add .assert_called_once_with (self .image_id ,
73
+ mock_iter .return_value , 0 )
74
+
75
+ @mock .patch .object (filesystem .Store , 'add' )
76
+ def test_web_download_with_content_length (self , mock_add ):
77
+ web_download_task = web_download ._WebDownload (
78
+ self .task .task_id , self .task_type , self .task_repo ,
79
+ self .image_id , self .uri )
80
+ with mock .patch .object (script_utils ,
81
+ 'get_image_data_iter' ) as mock_iter :
82
+ mock_iter .return_value .headers = {'content-length' : '4' }
83
+ mock_add .return_value = ["path" , 4 ]
84
+ self .assertEqual (web_download_task .execute (), "path" )
85
+ mock_add .assert_called_once_with (self .image_id ,
86
+ mock_iter .return_value , 0 )
87
+
88
+ @mock .patch .object (filesystem .Store , 'add' )
89
+ def test_web_download_with_invalid_content_length (self , mock_add ):
90
+ web_download_task = web_download ._WebDownload (
91
+ self .task .task_id , self .task_type , self .task_repo ,
92
+ self .image_id , self .uri )
93
+ with mock .patch .object (script_utils ,
94
+ 'get_image_data_iter' ) as mock_iter :
95
+ mock_iter .return_value .headers = {'content-length' : "not_valid" }
96
+ mock_add .return_value = ["path" , 4 ]
97
+ self .assertEqual (web_download_task .execute (), "path" )
98
+ mock_add .assert_called_once_with (self .image_id ,
99
+ mock_iter .return_value , 0 )
100
+
101
+ @mock .patch .object (filesystem .Store , 'add' )
102
+ def test_web_download_fails_when_data_size_different (self , mock_add ):
103
+ web_download_task = web_download ._WebDownload (
104
+ self .task .task_id , self .task_type , self .task_repo ,
105
+ self .image_id , self .uri )
106
+ with mock .patch .object (script_utils ,
107
+ 'get_image_data_iter' ) as mock_iter :
108
+ mock_iter .return_value .headers = {'content-length' : '4' }
109
+ mock_add .return_value = ["path" , 3 ]
110
+ self .assertRaises (
111
+ glance .common .exception .ImportTaskError ,
112
+ web_download_task .execute )
72
113
73
114
def test_web_download_node_staging_uri_is_none (self ):
74
115
self .config (node_staging_uri = None )
0 commit comments