forked from canada-ca/tracker
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_organization.py
More file actions
69 lines (50 loc) · 2.42 KB
/
test_organization.py
File metadata and controls
69 lines (50 loc) · 2.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
"""Tests for methods on the Organization class"""
import json
import pytest
import tracker_client.queries as queries
# pylint: disable=no-member
def test_org_get_summary(mock_org, org_summary_input, org_summary_output):
"""Test that Organization.get_summary produces correct output"""
test_org = mock_org(org_summary_input)
result = test_org.get_summary()
test_org.client.execute_query.assert_called_once_with(
queries.SUMMARY_BY_SLUG, {"orgSlug": "foo"}
)
assert result == json.dumps(org_summary_output, indent=4)
def test_org_get_summary_error(mock_org, error_message):
"""Test that Organization.get_summary correctly handles error response"""
test_org = mock_org(error_message)
assert test_org.get_summary() == json.dumps(error_message, indent=4)
def test_org_get_domains(mock_org, org_get_domains_input):
"""Test that Organization.get_domains produces correct output"""
test_org = mock_org(org_get_domains_input)
domain_list = test_org.get_domains()
test_org.client.execute_query.assert_called_once_with(
queries.GET_ORG_DOMAINS, {"orgSlug": "foo", "after": "abc"}
)
assert domain_list[0].domain_name == "foo.bar"
assert domain_list[1].dmarc_phase == "not implemented"
assert domain_list[2].last_ran == "2021-01-27 23:24:26.911236"
assert domain_list[0].dkim_selectors == []
def test_org_get_domains_pagination(
mock_org, org_get_domains_input, org_get_domains_has_next_input
):
"""Test that Organization.get_domains correctly requests more domains if hasNextPage is true"""
def mock_return(query, params):
if params["after"] == "abc":
return org_get_domains_input
return org_get_domains_has_next_input
test_org = mock_org(None)
test_org.client.execute_query = mock_return
domain_list = test_org.get_domains()
# If get_domains didn't try to paginate, len(domain_list) will be 3.
# If it didn't stop trying to get more domains after hasNextPage became false
# then the length will be greater than 6.
assert len(domain_list) == 6
def test_org_get_domains_error(mock_org, error_message, capsys):
"""Test that Organization.get_domains correctly handles error response"""
test_org = mock_org(error_message)
with pytest.raises(ValueError, match=r"Unable to get domains for foo"):
test_org.get_domains()
captured = capsys.readouterr()
assert "Server error:" in captured.out