-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathtest_collection_views.py
83 lines (68 loc) · 2.75 KB
/
test_collection_views.py
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
from django.urls import reverse
import pytest
@pytest.mark.django_db
def test_collection_detail(document_collection, client):
response = client.get(document_collection.get_absolute_url())
assert response.status_code == 200
assert document_collection.title in response.content.decode("utf-8")
assert document_collection.description in response.content.decode("utf-8")
@pytest.mark.django_db
def test_collection_detail_private(document_collection, client, dummy_user):
document_collection.public = False
document_collection.user = dummy_user
document_collection.save()
response = client.get(document_collection.get_absolute_url())
assert response.status_code == 404
client.force_login(dummy_user)
response = client.get(document_collection.get_absolute_url())
assert response.status_code == 200
@pytest.mark.django_db
@pytest.mark.parametrize("initial_slug_val", ["", None])
def test_collection_detail_slug_behavior(
document_collection, client, dummy_user, initial_slug_val
):
if initial_slug_val is not None:
document_collection.slug = initial_slug_val
document_collection.user = dummy_user
document_collection.save()
bad_slug_url = reverse(
"filingcabinet:document-collection",
kwargs={"pk": document_collection.pk, "slug": "bad"},
)
response = client.get(bad_slug_url)
assert response.status_code == 302
assert response.headers["Location"] == document_collection.get_absolute_url()
query_param = "?foo=bar"
bad_slug_url = bad_slug_url + query_param
response = client.get(bad_slug_url)
assert response.status_code == 302
assert (
response.headers["Location"]
== document_collection.get_absolute_url() + query_param
)
document_collection.public = False
document_collection.user = dummy_user
document_collection.save()
response = client.get(bad_slug_url)
assert response.status_code == 404
client.force_login(dummy_user)
response = client.get(bad_slug_url)
assert response.status_code == 302
assert (
response.headers["Location"]
== document_collection.get_absolute_url() + query_param
)
@pytest.mark.django_db
def test_collection_embed(document_collection, client):
response = client.get(document_collection.get_absolute_domain_embed_url())
assert response.status_code == 200
assert "<h2>{}</h2>".format(
document_collection.title
) not in response.content.decode("utf-8")
document_collection.slug = ""
document_collection.save()
response = client.get(document_collection.get_absolute_domain_embed_url())
assert response.status_code == 200
assert "<h2>{}</h2>".format(
document_collection.title
) not in response.content.decode("utf-8")