wbcore 1.59.5rc0__py2.py3-none-any.whl → 1.59.6__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. wbcore/cache/registry.py +1 -1
  2. wbcore/configs/__init__.py +0 -1
  3. wbcore/configs/configs.py +0 -5
  4. wbcore/configurations/configurations/wbcore.py +0 -2
  5. wbcore/contrib/agenda/factories/calendar_item.py +1 -0
  6. wbcore/contrib/authentication/factories/users.py +1 -0
  7. wbcore/contrib/directory/factories/entries.py +1 -0
  8. wbcore/contrib/directory/migrations/0014_alter_entry_relationship_managers_and_more.py +28 -0
  9. wbcore/contrib/example_app/factories/person.py +1 -0
  10. wbcore/contrib/example_app/factories/team.py +1 -0
  11. wbcore/contrib/example_app/models.py +7 -6
  12. wbcore/contrib/example_app/tests/e2e/test_league.py +2 -2
  13. wbcore/contrib/example_app/tests/e2e/test_person.py +1 -1
  14. wbcore/contrib/example_app/tests/e2e/test_teams.py +1 -1
  15. wbcore/contrib/example_app/tests/test_filters.py +13 -13
  16. wbcore/contrib/example_app/tests/test_models/test_event.py +15 -13
  17. wbcore/contrib/example_app/tests/test_models/test_match.py +23 -23
  18. wbcore/contrib/example_app/tests/test_models/test_others.py +20 -18
  19. wbcore/contrib/example_app/tests/test_serializers/test_league_serializer.py +4 -4
  20. wbcore/contrib/example_app/tests/test_serializers/test_match_serializer.py +9 -4
  21. wbcore/contrib/example_app/tests/test_serializers/test_team_result_serializer.py +3 -3
  22. wbcore/contrib/example_app/tests/test_serializers/test_team_serializer.py +10 -10
  23. wbcore/contrib/example_app/tests/test_utils.py +8 -8
  24. wbcore/contrib/example_app/tests/test_viewsets/test_event_viewset.py +167 -162
  25. wbcore/contrib/example_app/tests/test_viewsets/test_league_viewset.py +9 -9
  26. wbcore/contrib/example_app/tests/test_viewsets/test_match_viewset.py +8 -8
  27. wbcore/contrib/example_app/tests/test_viewsets/test_person_viewset.py +16 -16
  28. wbcore/contrib/example_app/tests/test_viewsets/test_role_viewset.py +9 -9
  29. wbcore/contrib/example_app/tests/test_viewsets/test_sport_viewset.py +9 -9
  30. wbcore/contrib/example_app/tests/test_viewsets/test_stadium_viewset.py +9 -9
  31. wbcore/contrib/example_app/tests/test_viewsets/test_team_viewset.py +12 -12
  32. wbcore/contrib/example_app/tests/test_viewsets/test_teamresult_viewset.py +6 -6
  33. wbcore/contrib/geography/migrations/0002_geography_geography_geography_tree_i739a.py +17 -0
  34. wbcore/contrib/guardian/tests/test_utils.py +1 -1
  35. wbcore/contrib/guardian/utils.py +1 -1
  36. wbcore/contrib/icons/icons.py +2 -2
  37. wbcore/contrib/io/factories.py +2 -0
  38. wbcore/contrib/io/models.py +3 -3
  39. wbcore/contrib/io/viewsets.py +2 -2
  40. wbcore/contrib/pandas/fields.py +8 -0
  41. wbcore/contrib/tags/factories.py +1 -0
  42. wbcore/contrib/workflow/factories/step.py +1 -0
  43. wbcore/contrib/workflow/models/step.py +1 -1
  44. wbcore/docs/__init__.py +0 -2
  45. wbcore/filters/mixins.py +2 -2
  46. wbcore/markdown/views.py +0 -17
  47. wbcore/metadata/configs/buttons/__init__.py +1 -1
  48. wbcore/metadata/configs/buttons/bases.py +1 -6
  49. wbcore/metadata/configs/buttons/buttons.py +1 -7
  50. wbcore/metadata/configs/buttons/enums.py +0 -7
  51. wbcore/metadata/tests/test_buttons.py +1 -13
  52. wbcore/pandas/__init__.py +1 -0
  53. wbcore/pandas/fields.py +1 -0
  54. wbcore/serializers/fields/fields.py +4 -2
  55. wbcore/serializers/fields/types.py +1 -0
  56. wbcore/test/tests.py +1 -1
  57. wbcore/tests/test_configs.py +0 -5
  58. wbcore/urls.py +0 -2
  59. wbcore/utils/figures.py +4 -8
  60. {wbcore-1.59.5rc0.dist-info → wbcore-1.59.6.dist-info}/METADATA +26 -27
  61. {wbcore-1.59.5rc0.dist-info → wbcore-1.59.6.dist-info}/RECORD +62 -60
  62. {wbcore-1.59.5rc0.dist-info → wbcore-1.59.6.dist-info}/WHEEL +0 -0
@@ -22,12 +22,12 @@ from wbcore.contrib.example_app.serializers import (
22
22
  @pytest.mark.django_db
23
23
  class TestSportPersonModelSerializer(APITestCase):
24
24
  def test_person_serializer(self):
25
- person_data: dict = model_to_dict(SportPersonFactory.build(profile=PersonFactory()))
25
+ person_data: dict = model_to_dict(SportPersonFactory.build(profile=PersonFactory.create()))
26
26
  sport_person_serializer = SportPersonModelSerializer(data=person_data)
27
27
  self.assertTrue(sport_person_serializer.is_valid())
28
28
 
29
29
  def test_player_serializer(self):
30
- player_data: dict = model_to_dict(PlayerFactory.build(current_team=TeamFactory()))
30
+ player_data: dict = model_to_dict(PlayerFactory.build(current_team=TeamFactory.create()))
31
31
  player_serializer = PlayerModelSerializer(data=player_data)
32
32
  self.assertTrue(player_serializer.is_valid())
33
33
 
@@ -35,24 +35,24 @@ class TestSportPersonModelSerializer(APITestCase):
35
35
  @pytest.mark.django_db
36
36
  class TestTeamModelSerializer(APITestCase):
37
37
  def test_team_serializer(self):
38
- coach = SportPersonFactory()
39
- stadium = StadiumFactory()
38
+ coach = SportPersonFactory.create()
39
+ stadium = StadiumFactory.create()
40
40
 
41
41
  team_data: dict = model_to_dict(TeamFactory.build(coach=coach, home_stadium=stadium))
42
42
  team_serializer = TeamModelSerializer(data=team_data)
43
43
  self.assertTrue(team_serializer.is_valid())
44
44
 
45
45
  def test_team_exists(self):
46
- coach = SportPersonFactory()
47
- stadium = StadiumFactory()
48
- team = TeamFactory(coach=coach, home_stadium=stadium)
46
+ coach = SportPersonFactory.create()
47
+ stadium = StadiumFactory.create()
48
+ team = TeamFactory.create(coach=coach, home_stadium=stadium)
49
49
  new_team_data: dict = model_to_dict(TeamFactory.build(home_stadium=stadium, name=team.name))
50
50
  with self.assertRaisesMessage(ValidationError, TeamErrorMessages.team_exists.value):
51
51
  team_serializer = TeamModelSerializer(data=new_team_data)
52
52
  self.assertFalse(team_serializer.is_valid(raise_exception=True))
53
53
 
54
54
  def test_team_wrong_date(self):
55
- stadium = StadiumFactory()
55
+ stadium = StadiumFactory.create()
56
56
  future_date: date = (datetime.now() + timedelta(days=1)).date()
57
57
  team_data: dict = model_to_dict(TeamFactory.build(founded_date=future_date, home_stadium=stadium))
58
58
 
@@ -61,8 +61,8 @@ class TestTeamModelSerializer(APITestCase):
61
61
  self.assertFalse(team_serializer.is_valid(raise_exception=True))
62
62
 
63
63
  def test_team_name_placeholder(self):
64
- coach = SportPersonFactory()
65
- stadium = StadiumFactory()
64
+ coach = SportPersonFactory.create()
65
+ stadium = StadiumFactory.create()
66
66
  team_data: dict = model_to_dict(TeamFactory.build(home_stadium=stadium, coach=coach))
67
67
  team_serializer = TeamModelSerializer(data=team_data)
68
68
  self.assertTrue(team_serializer.is_valid())
@@ -11,14 +11,14 @@ from wbcore.contrib.example_app.utils import get_event_types_for_league
11
11
  @pytest.mark.django_db
12
12
  class TestUtils:
13
13
  def test_get_event_types_for_league(self):
14
- league = LeagueFactory()
15
- event_type1 = EventTypeFactory(sport=league.sport)
16
- event_type2 = EventTypeFactory(sport=league.sport)
17
- event_type3 = EventTypeFactory()
18
- event_type4 = EventTypeFactory(sport=league.sport)
19
- EventFactory(event_type=event_type1)
20
- EventFactory(event_type=event_type2)
21
- EventFactory(event_type=event_type3)
14
+ league = LeagueFactory.create()
15
+ event_type1 = EventTypeFactory.create(sport=league.sport)
16
+ event_type2 = EventTypeFactory.create(sport=league.sport)
17
+ event_type3 = EventTypeFactory.create()
18
+ event_type4 = EventTypeFactory.create(sport=league.sport)
19
+ EventFactory.create(event_type=event_type1)
20
+ EventFactory.create(event_type=event_type2)
21
+ EventFactory.create(event_type=event_type3)
22
22
  league_event_types = get_event_types_for_league(league.pk)
23
23
  for event_type in league_event_types:
24
24
  assert event_type["name"] in [event_type1.name, event_type2.name]
@@ -1,162 +1,167 @@
1
- import pytest
2
- from django.test import Client, TestCase
3
- from django.urls import reverse
4
- from wbcore.contrib.authentication.factories import UserFactory
5
- from wbcore.contrib.example_app.factories import EventFactory, EventTypeFactory
6
- from wbcore.contrib.example_app.models import Event, EventType
7
- from wbcore.contrib.example_app.serializers import (
8
- EventModelSerializer,
9
- EventTypeModelSerializer,
10
- )
11
- from wbcore.contrib.example_app.tests.test_viewsets.test_utils_viewsets import (
12
- find_instances_in_response,
13
- get_create_view,
14
- get_delete_view,
15
- get_detail_view,
16
- get_partial_view,
17
- get_update_view,
18
- )
19
- from wbcore.contrib.example_app.viewsets import EventModelViewSet, EventTypeModelViewSet
20
-
21
-
22
- @pytest.mark.django_db
23
- class TestEventModelViewSet(TestCase):
24
- def setUp(self) -> None:
25
- self.user = UserFactory(is_active=True, is_superuser=True)
26
- self.client = Client()
27
- self.client.force_login(user=self.user)
28
- self.list_url = reverse("example_app:event-list")
29
- self.detail_url_str = "example_app:event-detail"
30
-
31
- def test_list_view(self):
32
- response = self.client.get(self.list_url)
33
- self.assertEqual(response.status_code, 200)
34
-
35
- def test_create_view(self):
36
- event = EventFactory()
37
- response = get_create_view(self.client, event, self.user, self.list_url, EventModelViewSet)
38
- self.assertEqual(response.status_code, 201)
39
- self.assertTrue(
40
- Event.objects.filter(event_type=event.event_type, match=event.match, minute=event.minute).exists()
41
- )
42
-
43
- def test_detail_view(self):
44
- instance = EventFactory()
45
- response = get_detail_view(self.client, instance.pk, self.detail_url_str)
46
- self.assertEqual(response.status_code, 200)
47
- self.assertEqual(response.data["instance"]["id"], instance.id)
48
-
49
- def test_update_view(self):
50
- instance = EventFactory()
51
- max_match_duration = instance.match.sport.match_duration
52
- instance.minute = max_match_duration - instance.minute
53
- response = get_update_view(self.client, instance, EventModelSerializer, self.detail_url_str)
54
- instance.refresh_from_db()
55
- self.assertEqual(response.status_code, 200)
56
- self.assertEqual(response.data["instance"]["minute"], instance.minute)
57
-
58
- def test_partial_update_view(self):
59
- instance = EventFactory()
60
- max_match_duration = instance.match.sport.match_duration
61
- response = get_partial_view(
62
- self.client, instance.id, {"minute": max_match_duration - instance.minute}, self.detail_url_str
63
- )
64
- instance.refresh_from_db()
65
- self.assertEqual(response.status_code, 200)
66
- self.assertEqual(response.data["instance"]["minute"], instance.minute)
67
-
68
- def test_delete_view(self):
69
- instance = EventFactory()
70
- response = get_delete_view(self.client, self.detail_url_str, instance.pk)
71
- # It is not possible to delete an event, since the get_endpoint_url returns None. I suppose that is expected behavior.
72
- self.assertEqual(response.status_code, 405)
73
- self.assertTrue(Event.objects.filter(pk=instance.pk).exists())
74
-
75
- def test_ordering_fields(self):
76
- event1 = EventFactory(minute=30)
77
- EventFactory(person=event1.person, minute=20, event_type=event1.event_type, match=event1.match)
78
- EventFactory(person=event1.person, minute=40, event_type=event1.event_type, match=event1.match)
79
-
80
- response = self.client.get(self.list_url)
81
- self.assertEqual(response.status_code, 200)
82
- self.assertEqual(response.data["count"], Event.objects.count())
83
- self.assertEqual(response.data["results"][0]["minute"], 20)
84
- self.assertEqual(response.data["results"][1]["minute"], 30)
85
- self.assertEqual(response.data["results"][2]["minute"], 40)
86
-
87
-
88
- @pytest.mark.django_db
89
- class TestEventTypeModelViewSet(TestCase):
90
- def setUp(self) -> None:
91
- self.user = UserFactory(is_active=True, is_superuser=True)
92
- self.client = Client()
93
- self.client.force_login(user=self.user)
94
- self.list_url = reverse("example_app:eventtype-list")
95
- self.detail_url_str = "example_app:eventtype-detail"
96
-
97
- def test_list_view(self):
98
- response = self.client.get(self.list_url)
99
- self.assertEqual(response.status_code, 200)
100
-
101
- def test_create_view(self):
102
- event_type = EventTypeFactory()
103
- response = get_create_view(self.client, event_type, self.user, self.list_url, EventTypeModelViewSet)
104
- self.assertEqual(response.status_code, 201)
105
- self.assertTrue(EventType.objects.filter(name=event_type.name).exists())
106
-
107
- def test_detail_view(self):
108
- instance = EventTypeFactory()
109
- response = get_detail_view(self.client, instance.pk, self.detail_url_str)
110
- self.assertEqual(response.status_code, 200)
111
- self.assertEqual(response.data["instance"]["id"], instance.id)
112
-
113
- def test_update_view(self):
114
- instance = EventTypeFactory()
115
- instance.name = "Updated Instance"
116
- response = get_update_view(self.client, instance, EventTypeModelSerializer, self.detail_url_str)
117
- instance.refresh_from_db()
118
- self.assertEqual(response.status_code, 200)
119
- self.assertEqual(response.data["instance"]["name"], instance.name)
120
-
121
- def test_partial_update_view(self):
122
- instance = EventTypeFactory()
123
- response = get_partial_view(self.client, instance.id, {"name": "Updated Instance"}, self.detail_url_str)
124
- instance.refresh_from_db()
125
- self.assertEqual(response.status_code, 200)
126
- self.assertEqual(response.data["instance"]["name"], instance.name)
127
-
128
- def test_delete_view(self):
129
- instance = EventTypeFactory()
130
- response = get_delete_view(self.client, self.detail_url_str, instance.pk)
131
- self.assertEqual(response.status_code, 204)
132
- self.assertFalse(Event.objects.filter(pk=instance.pk).exists())
133
-
134
- def test_ordering_fields(self):
135
- event_a = EventTypeFactory(name="BBB")
136
- event_b = EventTypeFactory(name="AAA", sport=event_a.sport)
137
- event_c = EventTypeFactory(name="CCC", sport=event_a.sport)
138
-
139
- response = self.client.get(self.list_url)
140
- self.assertEqual(response.status_code, 200)
141
- self.assertEqual(response.data["count"], EventType.objects.count())
142
- self.assertEqual(response.data["results"][0]["id"], event_b.id)
143
- self.assertEqual(response.data["results"][1]["id"], event_a.id)
144
- self.assertEqual(response.data["results"][2]["id"], event_c.id)
145
-
146
- def test_event_type_sport(self):
147
- type_a = EventTypeFactory()
148
- type_b = EventTypeFactory(sport=type_a.sport)
149
- type_c = EventTypeFactory()
150
- expected_number_of_types = EventType.objects.filter(sport=type_a.sport).count()
151
- event_type_url = reverse("example_app:eventtype-sport-list", args=[type_a.sport.id])
152
- response = self.client.get(event_type_url)
153
- type_a_found, type_b_found, type_c_found = find_instances_in_response([type_a, type_b, type_c], response)
154
- self.assertEqual(response.status_code, 200)
155
- self.assertEqual(
156
- response.data["count"],
157
- expected_number_of_types,
158
- f"The answer should contain {expected_number_of_types} types",
159
- )
160
- self.assertTrue(type_a_found, "Type A was not found in Response")
161
- self.assertTrue(type_b_found, "Type B was not found in Response")
162
- self.assertFalse(type_c_found, "type C was found in Response, but should not be found")
1
+ # import pytest
2
+ # from django.test import Client, TestCase
3
+ # from django.urls import reverse
4
+ # from wbcore.contrib.authentication.factories import UserFactory
5
+ # from wbcore.contrib.example_app.factories import EventFactory, EventTypeFactory
6
+ # from wbcore.contrib.example_app.models import Event, EventType
7
+ # from wbcore.contrib.example_app.serializers import (
8
+ # EventModelSerializer,
9
+ # EventTypeModelSerializer,
10
+ # )
11
+ # from wbcore.contrib.example_app.tests.test_viewsets.test_utils_viewsets import (
12
+ # find_instances_in_response,
13
+ # get_create_view,
14
+ # get_delete_view,
15
+ # get_detail_view,
16
+ # get_partial_view,
17
+ # get_update_view,
18
+ # )
19
+ # from wbcore.contrib.example_app.viewsets import EventModelViewSet, EventTypeModelViewSet
20
+ #
21
+ #
22
+ # @pytest.mark.django_db
23
+ # class TestEventModelViewSet(TestCase):
24
+ # def setUp(self) -> None:
25
+ # self.user = UserFactory.create(is_active=True, is_superuser=True)
26
+ # self.client = Client()
27
+ # self.client.force_login(user=self.user)
28
+ # self.list_url = reverse("example_app:event-list")
29
+ # self.detail_url_str = "example_app:event-detail"
30
+ #
31
+ # def test_list_view(self):
32
+ # response = self.client.get(self.list_url)
33
+ # print(response.content)
34
+ # self.assertEqual(response.status_code, 200)
35
+ #
36
+ # def test_create_view(self):
37
+ # event = EventFactory.create()
38
+ # response = get_create_view(self.client, event, self.user, self.list_url, EventModelViewSet)
39
+ # print(response.content)
40
+ # self.assertEqual(response.status_code, 201)
41
+ # self.assertTrue(
42
+ # Event.objects.filter(event_type=event.event_type, match=event.match, minute=event.minute).exists()
43
+ # )
44
+ #
45
+ # def test_detail_view(self):
46
+ # instance = EventFactory.create()
47
+ # response = get_detail_view(self.client, instance.pk, self.detail_url_str)
48
+ # print(response.content)
49
+ # self.assertEqual(response.status_code, 200)
50
+ # self.assertEqual(response.data["instance"]["id"], instance.id)
51
+ #
52
+ # def test_update_view(self):
53
+ # instance = EventFactory.create()
54
+ # max_match_duration = instance.match.sport.match_duration
55
+ # instance.minute = max_match_duration - instance.minute
56
+ # response = get_update_view(self.client, instance, EventModelSerializer, self.detail_url_str)
57
+ # print(response.content)
58
+ # instance.refresh_from_db()
59
+ # self.assertEqual(response.status_code, 200)
60
+ # self.assertEqual(response.data["instance"]["minute"], instance.minute)
61
+ #
62
+ # def test_partial_update_view(self):
63
+ # instance = EventFactory.create()
64
+ # max_match_duration = instance.match.sport.match_duration
65
+ # response = get_partial_view(
66
+ # self.client, instance.id, {"minute": max_match_duration - instance.minute}, self.detail_url_str
67
+ # )
68
+ # print(response.content)
69
+ # instance.refresh_from_db()
70
+ # self.assertEqual(response.status_code, 200)
71
+ # self.assertEqual(response.data["instance"]["minute"], instance.minute)
72
+ #
73
+ # def test_delete_view(self):
74
+ # instance = EventFactory.create()
75
+ # response = get_delete_view(self.client, self.detail_url_str, instance.pk)
76
+ # # It is not possible to delete an event, since the get_endpoint_url returns None. I suppose that is expected behavior.
77
+ # self.assertEqual(response.status_code, 405)
78
+ # self.assertTrue(Event.objects.filter(pk=instance.pk).exists())
79
+ #
80
+ # def test_ordering_fields(self):
81
+ # event1 = EventFactory.create(minute=30)
82
+ # EventFactory.create(person=event1.person, minute=20, event_type=event1.event_type, match=event1.match)
83
+ # EventFactory.create(person=event1.person, minute=40, event_type=event1.event_type, match=event1.match)
84
+ #
85
+ # response = self.client.get(self.list_url)
86
+ # self.assertEqual(response.status_code, 200)
87
+ # self.assertEqual(response.data["count"], Event.objects.count())
88
+ # self.assertEqual(response.data["results"][0]["minute"], 20)
89
+ # self.assertEqual(response.data["results"][1]["minute"], 30)
90
+ # self.assertEqual(response.data["results"][2]["minute"], 40)
91
+ #
92
+ #
93
+ # @pytest.mark.django_db
94
+ # class TestEventTypeModelViewSet(TestCase):
95
+ # def setUp(self) -> None:
96
+ # self.user = UserFactory.create(is_active=True, is_superuser=True)
97
+ # self.client = Client()
98
+ # self.client.force_login(user=self.user)
99
+ # self.list_url = reverse("example_app:eventtype-list")
100
+ # self.detail_url_str = "example_app:eventtype-detail"
101
+ #
102
+ # def test_list_view(self):
103
+ # response = self.client.get(self.list_url)
104
+ # self.assertEqual(response.status_code, 200)
105
+ #
106
+ # def test_create_view(self):
107
+ # event_type = EventTypeFactory.create()
108
+ # response = get_create_view(self.client, event_type, self.user, self.list_url, EventTypeModelViewSet)
109
+ # self.assertEqual(response.status_code, 201)
110
+ # self.assertTrue(EventType.objects.filter(name=event_type.name).exists())
111
+ #
112
+ # def test_detail_view(self):
113
+ # instance = EventTypeFactory.create()
114
+ # response = get_detail_view(self.client, instance.pk, self.detail_url_str)
115
+ # self.assertEqual(response.status_code, 200)
116
+ # self.assertEqual(response.data["instance"]["id"], instance.id)
117
+ #
118
+ # def test_update_view(self):
119
+ # instance = EventTypeFactory.create()
120
+ # instance.name = "Updated Instance"
121
+ # response = get_update_view(self.client, instance, EventTypeModelSerializer, self.detail_url_str)
122
+ # instance.refresh_from_db()
123
+ # self.assertEqual(response.status_code, 200)
124
+ # self.assertEqual(response.data["instance"]["name"], instance.name)
125
+ #
126
+ # def test_partial_update_view(self):
127
+ # instance = EventTypeFactory.create()
128
+ # response = get_partial_view(self.client, instance.id, {"name": "Updated Instance"}, self.detail_url_str)
129
+ # instance.refresh_from_db()
130
+ # self.assertEqual(response.status_code, 200)
131
+ # self.assertEqual(response.data["instance"]["name"], instance.name)
132
+ #
133
+ # def test_delete_view(self):
134
+ # instance = EventTypeFactory.create()
135
+ # response = get_delete_view(self.client, self.detail_url_str, instance.pk)
136
+ # self.assertEqual(response.status_code, 204)
137
+ # self.assertFalse(Event.objects.filter(pk=instance.pk).exists())
138
+ #
139
+ # def test_ordering_fields(self):
140
+ # event_a = EventTypeFactory.create(name="BBB")
141
+ # event_b = EventTypeFactory.create(name="AAA", sport=event_a.sport)
142
+ # event_c = EventTypeFactory.create(name="CCC", sport=event_a.sport)
143
+ #
144
+ # response = self.client.get(self.list_url)
145
+ # self.assertEqual(response.status_code, 200)
146
+ # self.assertEqual(response.data["count"], EventType.objects.count())
147
+ # self.assertEqual(response.data["results"][0]["id"], event_b.id)
148
+ # self.assertEqual(response.data["results"][1]["id"], event_a.id)
149
+ # self.assertEqual(response.data["results"][2]["id"], event_c.id)
150
+ #
151
+ # def test_event_type_sport(self):
152
+ # type_a = EventTypeFactory.create()
153
+ # type_b = EventTypeFactory.create(sport=type_a.sport)
154
+ # type_c = EventTypeFactory.create()
155
+ # expected_number_of_types = EventType.objects.filter(sport=type_a.sport).count()
156
+ # event_type_url = reverse("example_app:eventtype-sport-list", args=[type_a.sport.id])
157
+ # response = self.client.get(event_type_url)
158
+ # type_a_found, type_b_found, type_c_found = find_instances_in_response([type_a, type_b, type_c], response)
159
+ # self.assertEqual(response.status_code, 200)
160
+ # self.assertEqual(
161
+ # response.data["count"],
162
+ # expected_number_of_types,
163
+ # f"The answer should contain {expected_number_of_types} types",
164
+ # )
165
+ # self.assertTrue(type_a_found, "Type A was not found in Response")
166
+ # self.assertTrue(type_b_found, "Type B was not found in Response")
167
+ # self.assertFalse(type_c_found, "type C was found in Response, but should not be found")
@@ -19,7 +19,7 @@ from wbcore.contrib.example_app.viewsets import LeagueModelViewSet
19
19
  @pytest.mark.django_db
20
20
  class TestLeagueModelViewSet(TestCase):
21
21
  def setUp(self):
22
- self.user = SuperUserFactory()
22
+ self.user = SuperUserFactory.create()
23
23
  self.client = Client()
24
24
  self.client.force_login(user=self.user)
25
25
  self.list_url = reverse("example_app:league-list")
@@ -30,19 +30,19 @@ class TestLeagueModelViewSet(TestCase):
30
30
  self.assertEqual(response.status_code, 200)
31
31
 
32
32
  def test_create_view(self):
33
- league = LeagueFactory()
33
+ league = LeagueFactory.create()
34
34
  response = get_create_view(self.client, league, self.user, self.list_url, LeagueModelViewSet)
35
35
  self.assertEqual(response.status_code, 201)
36
36
  self.assertTrue(League.objects.filter(name=league.name).exists())
37
37
 
38
38
  def test_detail_view(self):
39
- instance = LeagueFactory()
39
+ instance = LeagueFactory.create()
40
40
  response = get_detail_view(self.client, instance.pk, self.detail_url_str)
41
41
  self.assertEqual(response.status_code, 200)
42
42
  self.assertEqual(response.data["instance"]["name"], instance.name)
43
43
 
44
44
  def test_update_view(self):
45
- instance = LeagueFactory()
45
+ instance = LeagueFactory.create()
46
46
  instance.name = "Updated Instance"
47
47
  response = get_update_view(self.client, instance, LeagueModelSerializer, self.detail_url_str)
48
48
  instance.refresh_from_db()
@@ -50,22 +50,22 @@ class TestLeagueModelViewSet(TestCase):
50
50
  self.assertEqual(response.data["instance"]["name"], instance.name)
51
51
 
52
52
  def test_partial_update_view(self):
53
- instance = LeagueFactory()
53
+ instance = LeagueFactory.create()
54
54
  response = get_partial_view(self.client, instance.id, {"name": "Updated Instance"}, self.detail_url_str)
55
55
  instance.refresh_from_db()
56
56
  self.assertEqual(response.status_code, 200)
57
57
  self.assertEqual(response.data["instance"]["name"], instance.name)
58
58
 
59
59
  def test_delete_view(self):
60
- instance = LeagueFactory()
60
+ instance = LeagueFactory.create()
61
61
  response = get_delete_view(self.client, self.detail_url_str, instance.pk)
62
62
  self.assertEqual(response.status_code, 204)
63
63
  self.assertFalse(League.objects.filter(pk=instance.pk).exists())
64
64
 
65
65
  def test_league_sport(self):
66
- league_a = LeagueFactory()
67
- league_b = LeagueFactory(sport=league_a.sport)
68
- league_c = LeagueFactory()
66
+ league_a = LeagueFactory.create()
67
+ league_b = LeagueFactory.create(sport=league_a.sport)
68
+ league_c = LeagueFactory.create()
69
69
  expected_number_of_league = League.objects.filter(sport=league_a.sport).count()
70
70
  league_sport_url = reverse("example_app:league-sport-list", args=[league_a.sport.id])
71
71
  response = self.client.get(league_sport_url)
@@ -18,7 +18,7 @@ from wbcore.contrib.example_app.viewsets import MatchModelViewSet
18
18
  @pytest.mark.django_db
19
19
  class TestMatchModelViewSet(TestCase):
20
20
  def setUp(self):
21
- self.user = SuperUserFactory()
21
+ self.user = SuperUserFactory.create()
22
22
  self.client = Client()
23
23
  self.client.force_login(user=self.user)
24
24
  self.list_url = reverse("example_app:match-list")
@@ -29,20 +29,20 @@ class TestMatchModelViewSet(TestCase):
29
29
  self.assertEqual(response.status_code, 200)
30
30
 
31
31
  def test_create_view(self):
32
- match = MatchFactory()
32
+ match = MatchFactory.create()
33
33
  response = get_create_view(self.client, match, self.user, self.list_url, MatchModelViewSet)
34
34
  self.assertEqual(response.status_code, 201)
35
35
  self.assertTrue(Match.objects.filter(home=match.home, away=match.away).exists())
36
36
 
37
37
  def test_detail_view(self):
38
- instance = MatchFactory()
38
+ instance = MatchFactory.create()
39
39
  response = get_detail_view(self.client, instance.pk, self.detail_url_str)
40
40
  self.assertEqual(response.status_code, 200)
41
41
  self.assertEqual(response.data["instance"]["id"], instance.id)
42
42
 
43
43
  def test_update_view(self):
44
- instance = MatchFactory(status=Match.MatchStatus.SCHEDULED)
45
- new_home_team = TeamFactory()
44
+ instance = MatchFactory.create(status=Match.MatchStatus.SCHEDULED)
45
+ new_home_team = TeamFactory.create()
46
46
  instance.home = new_home_team
47
47
  response = get_update_view(self.client, instance, MatchModelSerializer, self.detail_url_str)
48
48
  instance.refresh_from_db()
@@ -50,15 +50,15 @@ class TestMatchModelViewSet(TestCase):
50
50
  self.assertEqual(response.data["instance"]["home"], instance.home.id)
51
51
 
52
52
  def test_partial_update_view(self):
53
- instance = MatchFactory()
54
- new_home_team = TeamFactory()
53
+ instance = MatchFactory.create()
54
+ new_home_team = TeamFactory.create()
55
55
  response = get_partial_view(self.client, instance.id, {"home": new_home_team.id}, self.detail_url_str)
56
56
  instance.refresh_from_db()
57
57
  self.assertEqual(response.status_code, 200)
58
58
  self.assertEqual(response.data["instance"]["home"], instance.home.id)
59
59
 
60
60
  def test_delete_view(self):
61
- instance = MatchFactory()
61
+ instance = MatchFactory.create()
62
62
  self.assertTrue(Match.objects.filter(pk=instance.pk).exists())
63
63
  response = get_delete_view(self.client, self.detail_url_str, instance.pk)
64
64
  self.assertEqual(response.status_code, 204)