Skip to content

Commit b99d298

Browse files
committed
* Updated tests to pytest
* Added tests for coverage * Made small adjustments to helper and utilitiy functions for clarity
1 parent 8b499d6 commit b99d298

File tree

5 files changed

+446
-259
lines changed

5 files changed

+446
-259
lines changed

tests/unit_tests/test_tethys_quotas/test_admin.py

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,33 @@ def test_admin_tethys_app_quotas_inline_active_impose_default(
5656
arq = ResourceQuota.objects.get(applies_to="tethys_apps.models.TethysApp")
5757
arq.active = True
5858
arq.impose_default = True
59+
arq.default = 37.6
5960
arq.save()
6061
app = TethysApp.objects.get(package="test_app")
6162
response = admin_client.get(f"/admin/tethys_apps/tethysapp/{app.id}/change/")
6263
assert response.status_code == 200
6364
assert b"Tethys App Quotas" in response.content
65+
assert b"<p>37.6</p>" in response.content
66+
assert TethysAppQuota.objects.count() == 1
67+
arq.active = False
68+
arq.impose_default = False
69+
arq.save()
70+
71+
72+
@pytest.mark.django_db
73+
def test_admin_tethys_app_quotas_inline_active_no_default(admin_client, load_quotas):
74+
assert ResourceQuota.objects.count() == 2
75+
app = TethysApp.objects.get(package="test_app")
76+
arq = ResourceQuota.objects.get(applies_to="tethys_apps.models.TethysApp")
77+
arq.active = True
78+
arq.impose_default = False
79+
TethysAppQuota.objects.create(resource_quota=arq, entity=app, value=None)
80+
arq.save()
81+
82+
response = admin_client.get(f"/admin/tethys_apps/tethysapp/{app.id}/change/")
83+
assert response.status_code == 200
84+
assert b"Tethys App Quotas" in response.content
85+
assert b"<p>--</p>" in response.content
6486
assert TethysAppQuota.objects.count() == 1
6587
arq.active = False
6688
arq.impose_default = False
@@ -76,7 +98,7 @@ def test_admin_user_quotas_inline_inactive(admin_client, admin_user, load_quotas
7698
response = admin_client.get(f"/admin/auth/user/{admin_user.id}/change/")
7799
assert response.status_code == 200
78100
assert b"User Quotas" in response.content
79-
assert UserQuota.objects.count() == 1
101+
assert UserQuota.objects.count() == 0
80102

81103

82104
@pytest.mark.django_db
@@ -101,16 +123,35 @@ def test_admin_user_quotas_inline_active_impose_default(
101123
urq = ResourceQuota.objects.get(applies_to="django.contrib.auth.models.User")
102124
urq.active = True
103125
urq.impose_default = True
126+
urq.default = 29.5
104127
urq.save()
105128
response = admin_client.get(f"/admin/auth/user/{admin_user.id}/change/")
106129
assert response.status_code == 200
107130
assert b"User Quotas" in response.content
131+
assert b"<p>29.5</p>" in response.content
108132
assert UserQuota.objects.count() == 1
109133
urq.active = False
110134
urq.impose_default = False
111135
urq.save()
112136

113137

138+
@pytest.mark.django_db
139+
def test_admin_user_quotas_inline_no_default(admin_client, admin_user, load_quotas):
140+
assert ResourceQuota.objects.count() == 2
141+
urq = ResourceQuota.objects.get(applies_to="django.contrib.auth.models.User")
142+
UserQuota.objects.create(resource_quota=urq, entity=admin_user, value=None)
143+
urq.active = True
144+
urq.impose_default = False
145+
urq.save()
146+
response = admin_client.get(f"/admin/auth/user/{admin_user.id}/change/")
147+
assert response.status_code == 200
148+
assert b"User Quotas" in response.content
149+
assert b"<p>--</p>" in response.content
150+
urq.active = False
151+
urq.impose_default = True
152+
urq.save()
153+
154+
114155
@pytest.mark.django_db
115156
def test_admin_user_quotas_inline_add_user(admin_client, load_quotas):
116157
assert ResourceQuota.objects.count() == 2

tests/unit_tests/test_tethys_quotas/test_enforce_quota.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,21 @@ def test_enforce_quota_rq_does_not_exist(mock_RQ, mock_log):
5959
assert "Success" == ret
6060

6161

62+
@mock.patch("tethys_quotas.decorators.log")
63+
@mock.patch("tethys_quotas.decorators.get_active_app")
64+
@mock.patch("tethys_quotas.decorators.ResourceQuota")
65+
def test_enforce_quota_no_app_request(mock_RQ, mock_active_app, mock_log):
66+
mock_RQ.objects.get.return_value = mock.MagicMock(
67+
codename="foo", applies_to="tethys_apps.models.TethysApp"
68+
)
69+
mock_active_app.return_value = None
70+
71+
mock_request = mock.MagicMock(spec=HttpRequest)
72+
a_controller(mock_request)
73+
74+
mock_log.warning.assert_called_with("Request could not be used to find app")
75+
76+
6277
@mock.patch("tethys_quotas.decorators.log")
6378
def test_enforce_quota_no_HttpRequest(mock_log):
6479
mock_request = mock.MagicMock()

0 commit comments

Comments
 (0)