Skip to content

Commit eaddbf7

Browse files
committed
unit tests
1 parent 137eb14 commit eaddbf7

1 file changed

Lines changed: 70 additions & 1 deletion

File tree

test/src/test_users.py

Lines changed: 70 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)