@@ -1661,7 +1661,7 @@ def test_create_initial_user_for_saas_unsupported_type(user_utils):
16611661 []
16621662 )
16631663])
1664- def test_create_initial_users_for_saas (
1664+ def test_create_initial_user_for_saas (
16651665 user_type , permissions , entitlement , is_workspace_admin , application_role , manage_security_groups ,
16661666 user_utils , requests_mock
16671667):
@@ -1731,3 +1731,72 @@ def test_create_initial_users_for_saas(
17311731 user_utils .add_user_to_manage_group .assert_has_calls (
17321732 map (lambda sg : call (user_id , sg , manage_api_key ), manage_security_groups )
17331733 )
1734+
1735+
1736+ def test_create_initial_users_for_saas_invalid_inputs (user_utils ):
1737+ with pytest .raises (Exception ) as excinfo :
1738+ user_utils .create_initial_users_for_saas ({})
1739+ assert str (excinfo .value ) == "expected top-level key 'users' not found"
1740+
1741+ with pytest .raises (Exception ) as excinfo :
1742+ user_utils .create_initial_users_for_saas ({"users" : {}})
1743+ assert str (excinfo .value ) == "expected key 'users.primary' not found"
1744+
1745+ with pytest .raises (Exception ) as excinfo :
1746+ user_utils .create_initial_users_for_saas ({"users" : {"primary" : "nope" }})
1747+ assert str (excinfo .value ) == "'users.primary' is not a list"
1748+
1749+ with pytest .raises (Exception ) as excinfo :
1750+ user_utils .create_initial_users_for_saas ({"users" : {"primary" : []}})
1751+ assert str (excinfo .value ) == "expected key 'users.secondary' not found"
1752+
1753+ with pytest .raises (Exception ) as excinfo :
1754+ user_utils .create_initial_users_for_saas ({"users" : {"primary" : [], "secondary" : "nope" }})
1755+ assert str (excinfo .value ) == "'users.secondary' is not a list"
1756+
1757+
1758+ def test_create_initial_users_for_saas_no_users (user_utils ):
1759+ assert user_utils .create_initial_users_for_saas ({"users" : {"primary" : [], "secondary" : []}}) == {"completed" : [], "failed" : []}
1760+
1761+
1762+ def test_create_initial_users_for_saas (user_utils ):
1763+
1764+ mas_workspace_application_ids = ["manage" , "iot" ]
1765+ user_utils .get_mas_applications_in_workspace = MagicMock (return_value = map (lambda x : {"id" : x }, mas_workspace_application_ids ))
1766+ user_utils .await_mas_application_availability = MagicMock ()
1767+ user_utils .create_initial_user_for_saas = MagicMock ()
1768+
1769+ def fail_for_users_b_and_e (user , user_type ):
1770+ if user ["email" ] in ["b" , "e" ]:
1771+ raise Exception (f"{ user ['email' ]} should fail" )
1772+ user_utils .create_initial_user_for_saas .side_effect = fail_for_users_b_and_e
1773+
1774+ initial_users = {
1775+ "users" : {
1776+ "primary" : [
1777+ {"email" : "a" },
1778+ {"email" : "b" },
1779+ {"email" : "c" }
1780+ ],
1781+ "secondary" : [
1782+ {"email" : "d" },
1783+ {"email" : "e" },
1784+ {"email" : "f" }
1785+ ]
1786+ }
1787+ }
1788+
1789+ assert user_utils .create_initial_users_for_saas (initial_users ) == {
1790+ "completed" : [
1791+ {"email" : "a" },
1792+ {"email" : "c" },
1793+ {"email" : "d" },
1794+ {"email" : "f" },
1795+ ],
1796+ "failed" : [
1797+ {"email" : "b" },
1798+ {"email" : "e" },
1799+ ]
1800+ }
1801+
1802+ user_utils .await_mas_application_availability .assert_has_calls ([call ("manage" ), call ("iot" )])
0 commit comments