33import pytest
44from apis .openstack_query_api .server_queries import (
55 find_servers_with_image ,
6+ group_servers_by_user_id ,
67 list_to_regex_pattern ,
78)
89
@@ -17,6 +18,18 @@ def test_list_to_regex_pattern():
1718 assert res == "(.*img1|.*img2|.*img3)"
1819
1920
21+ @patch ("apis.openstack_query_api.server_queries.QueryAPI" )
22+ def test_group_by_user_id (mock_server_query ):
23+ """
24+ Tests group_servers_by_user_id() function
25+ """
26+ mock_server_query_obj = mock_server_query .return_value
27+ mock_grouped_query_obj = mock_server_query_obj .group_by .return_value
28+ res = group_servers_by_user_id (mock_server_query_obj )
29+ mock_server_query_obj .group_by .assert_called_once_with ("user_id" )
30+ assert res == mock_grouped_query_obj
31+
32+
2033@patch ("apis.openstack_query_api.server_queries.ImageQuery" )
2134@patch ("apis.openstack_query_api.server_queries.list_to_regex_pattern" )
2235def test_find_servers_with_image_valid (mock_list_to_regex , mock_image_query ):
@@ -59,12 +72,9 @@ def test_find_servers_with_image_valid(mock_list_to_regex, mock_image_query):
5972 all_projects = False ,
6073 )
6174 mock_server_query_obj .select .assert_called_once_with ("id" , "name" , "addresses" )
62- mock_server_query_obj .to_props .assert_called_once ()
63-
6475 mock_server_query_obj .append_from .assert_called_once_with (
6576 "PROJECT_QUERY" , "test-cloud-account" , ["name" ]
6677 )
67- mock_server_query_obj .group_by .assert_called_once_with ("user_id" )
6878 assert res == mock_server_query_obj
6979
7080
@@ -98,48 +108,3 @@ def test_find_servers_with_image_invalid_images(mock_list_to_regex, mock_image_q
98108 ("id" , "ascending" ), ("name" , "ascending" )
99109 )
100110 mock_image_query_obj .to_props .assert_called_once ()
101-
102-
103- @patch ("apis.openstack_query_api.server_queries.ImageQuery" )
104- @patch ("apis.openstack_query_api.server_queries.list_to_regex_pattern" )
105- def test_find_servers_with_image_no_servers_found (mock_list_to_regex , mock_image_query ):
106- """
107- Tests that find_servers_with_images() raises an error when no servers are found
108- """
109-
110- mock_image_query_obj = mock_image_query .return_value
111- mock_server_query_obj = mock_image_query_obj .then .return_value
112- mock_server_query_obj .to_props .return_value = None
113-
114- with pytest .raises (RuntimeError ):
115- find_servers_with_image (
116- "test-cloud-account" , ["img1" , "img2" ], ["project1" , "project2" ]
117- )
118-
119- mock_image_query .assert_called_once ()
120- mock_list_to_regex .assert_called_once_with (["img1" , "img2" ])
121- mock_image_query_obj .where .assert_called_once_with (
122- "matches_regex" ,
123- "name" ,
124- value = mock_list_to_regex .return_value ,
125- )
126-
127- mock_image_query_obj .run .assert_called_once_with (
128- "test-cloud-account" ,
129- as_admin = True ,
130- from_projects = ["project1" , "project2" ],
131- all_projects = False ,
132- )
133- mock_image_query_obj .sort_by .assert_called_once_with (
134- ("id" , "ascending" ), ("name" , "ascending" )
135- )
136- mock_image_query_obj .to_props .assert_called_once ()
137-
138- mock_server_query_obj .run .assert_called_once_with (
139- "test-cloud-account" ,
140- as_admin = True ,
141- from_projects = ["project1" , "project2" ],
142- all_projects = False ,
143- )
144- mock_server_query_obj .select .assert_called_once_with ("id" , "name" , "addresses" )
145- mock_server_query_obj .to_props .assert_called_once ()
0 commit comments