forked from CenterForOpenScience/osf.io
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_institution_list.py
More file actions
82 lines (61 loc) · 2.56 KB
/
test_institution_list.py
File metadata and controls
82 lines (61 loc) · 2.56 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
70
71
72
73
74
75
76
77
78
79
80
81
82
import pytest
from api.base.settings.defaults import API_BASE
from osf_tests.factories import InstitutionFactory
@pytest.mark.django_db
class TestInstitutionList:
@pytest.fixture()
def institution_one(self):
return InstitutionFactory()
@pytest.fixture()
def institution_two(self):
return InstitutionFactory()
@pytest.fixture()
def institution_three(self):
return InstitutionFactory()
@pytest.fixture()
def url_institution(self):
return f'/{API_BASE}institutions/'
def test_return_all_institutions(
self, app, institution_one,
institution_two, url_institution
):
res_institutions = app.get(url_institution)
data_institutions = res_institutions.json['data']
assert res_institutions.status_code == 200
ids = [each['id'] for each in data_institutions]
assert len(data_institutions) == 2
assert res_institutions.json['links']['meta']['per_page'] == 1000
assert institution_one._id in ids
assert institution_two._id in ids
def test_does_not_return_deleted_institution(
self, app, institution_one, institution_two, url_institution):
institution_one.is_deleted = True
institution_one.save()
res = app.get(url_institution)
assert res.status_code == 200
ids = [each['id'] for each in res.json['data']]
assert len(res.json['data']) == 1
assert institution_one._id not in ids
assert institution_two._id in ids
def test_sso_availability_filter(
self, app, institution_one, institution_two, institution_three, url_institution
):
institution_one.sso_availability = 'Unavailable'
institution_one.save()
institution_two.sso_availability = 'Public'
institution_two.save()
institution_three.sso_availability = 'Hidden'
institution_three.save()
res = app.get(f'{url_institution}?filter[sso_availability]=[Unavailable]')
assert res.status_code == 200
ids = [each['id'] for each in res.json['data']]
assert len(res.json['data']) == 1
assert institution_one._id in ids
assert institution_two._id not in ids
res = app.get(f'{url_institution}?filter[sso_availability]=[Unavailable,Hidden]')
assert res.status_code == 200
ids = [each['id'] for each in res.json['data']]
assert len(res.json['data']) == 2
assert institution_one._id in ids
assert institution_three._id in ids
assert institution_two._id not in ids