|
8 | 8 | from django.utils import timezone
|
9 | 9 | from freezegun.api import freeze_time
|
10 | 10 | from rest_framework import status
|
| 11 | +from parameterized import parameterized |
11 | 12 |
|
12 | 13 | from posthog.api.test.test_organization import create_organization
|
13 | 14 | from posthog.api.test.test_team import create_team
|
@@ -65,54 +66,58 @@ def test_list_event_definitions(self):
|
65 | 66 | 0,
|
66 | 67 | )
|
67 | 68 |
|
68 |
| - def test_list_event_definitions_ordering(self): |
69 |
| - response = self.client.get("/api/projects/@current/event_definitions/?ordering=name") |
70 |
| - self.assertEqual(response.status_code, status.HTTP_200_OK) |
71 |
| - assert [(r["name"], r["last_seen_at"]) for r in response.json()["results"]] == [ |
72 |
| - ("$pageview", "2020-01-01T22:56:00Z"), |
73 |
| - ("entered_free_trial", "2020-01-01T23:00:00Z"), |
74 |
| - ("installed_app", "2020-01-01T00:00:00Z"), |
75 |
| - ("purchase", "2019-12-30T00:00:00Z"), |
76 |
| - ("rated_app", "2019-12-21T00:00:00Z"), |
77 |
| - ("watched_movie", None), |
78 |
| - ] |
79 |
| - |
80 |
| - response = self.client.get("/api/projects/@current/event_definitions/?ordering=-name") |
81 |
| - self.assertEqual(response.status_code, status.HTTP_200_OK) |
82 |
| - assert [(r["name"], r["last_seen_at"]) for r in response.json()["results"]] == [ |
83 |
| - ("watched_movie", None), |
84 |
| - ("rated_app", "2019-12-21T00:00:00Z"), |
85 |
| - ("purchase", "2019-12-30T00:00:00Z"), |
86 |
| - ("installed_app", "2020-01-01T00:00:00Z"), |
87 |
| - ("entered_free_trial", "2020-01-01T23:00:00Z"), |
88 |
| - ("$pageview", "2020-01-01T22:56:00Z"), |
89 |
| - ] |
90 |
| - |
91 |
| - response = self.client.get( |
92 |
| - "/api/projects/@current/event_definitions/?ordering=-last_seen_at::date&ordering=name" |
93 |
| - ) |
94 |
| - self.assertEqual(response.status_code, status.HTTP_200_OK) |
95 |
| - assert [(r["name"], r["last_seen_at"]) for r in response.json()["results"]] == [ |
96 |
| - ("$pageview", "2020-01-01T22:56:00Z"), |
97 |
| - ("entered_free_trial", "2020-01-01T23:00:00Z"), |
98 |
| - ("installed_app", "2020-01-01T00:00:00Z"), |
99 |
| - ("purchase", "2019-12-30T00:00:00Z"), |
100 |
| - ("rated_app", "2019-12-21T00:00:00Z"), |
101 |
| - ("watched_movie", None), |
| 69 | + @parameterized.expand( |
| 70 | + [ |
| 71 | + ( |
| 72 | + "ordering=name", |
| 73 | + [ |
| 74 | + ("$pageview", "2020-01-01T22:56:00Z"), |
| 75 | + ("entered_free_trial", "2020-01-01T23:00:00Z"), |
| 76 | + ("installed_app", "2020-01-01T00:00:00Z"), |
| 77 | + ("purchase", "2019-12-30T00:00:00Z"), |
| 78 | + ("rated_app", "2019-12-21T00:00:00Z"), |
| 79 | + ("watched_movie", None), |
| 80 | + ], |
| 81 | + ), |
| 82 | + ( |
| 83 | + "ordering=-name", |
| 84 | + [ |
| 85 | + ("watched_movie", None), |
| 86 | + ("rated_app", "2019-12-21T00:00:00Z"), |
| 87 | + ("purchase", "2019-12-30T00:00:00Z"), |
| 88 | + ("installed_app", "2020-01-01T00:00:00Z"), |
| 89 | + ("entered_free_trial", "2020-01-01T23:00:00Z"), |
| 90 | + ("$pageview", "2020-01-01T22:56:00Z"), |
| 91 | + ], |
| 92 | + ), |
| 93 | + ( |
| 94 | + "ordering=-last_seen_at::date&ordering=name", |
| 95 | + [ |
| 96 | + ("$pageview", "2020-01-01T22:56:00Z"), |
| 97 | + ("entered_free_trial", "2020-01-01T23:00:00Z"), |
| 98 | + ("installed_app", "2020-01-01T00:00:00Z"), |
| 99 | + ("purchase", "2019-12-30T00:00:00Z"), |
| 100 | + ("rated_app", "2019-12-21T00:00:00Z"), |
| 101 | + ("watched_movie", None), |
| 102 | + ], |
| 103 | + ), |
| 104 | + ( |
| 105 | + "ordering=-last_seen_at::date&ordering=-name", |
| 106 | + [ |
| 107 | + ("installed_app", "2020-01-01T00:00:00Z"), |
| 108 | + ("entered_free_trial", "2020-01-01T23:00:00Z"), |
| 109 | + ("$pageview", "2020-01-01T22:56:00Z"), |
| 110 | + ("purchase", "2019-12-30T00:00:00Z"), |
| 111 | + ("rated_app", "2019-12-21T00:00:00Z"), |
| 112 | + ("watched_movie", None), |
| 113 | + ], |
| 114 | + ), |
102 | 115 | ]
|
103 |
| - |
104 |
| - response = self.client.get( |
105 |
| - "/api/projects/@current/event_definitions/?ordering=-last_seen_at::date&ordering=-name" |
106 |
| - ) |
| 116 | + ) |
| 117 | + def test_list_event_definitions_ordering(self, query_params, expected_results): |
| 118 | + response = self.client.get(f"/api/projects/@current/event_definitions/?{query_params}") |
107 | 119 | self.assertEqual(response.status_code, status.HTTP_200_OK)
|
108 |
| - assert [(r["name"], r["last_seen_at"]) for r in response.json()["results"]] == [ |
109 |
| - ("installed_app", "2020-01-01T00:00:00Z"), |
110 |
| - ("entered_free_trial", "2020-01-01T23:00:00Z"), |
111 |
| - ("$pageview", "2020-01-01T22:56:00Z"), |
112 |
| - ("purchase", "2019-12-30T00:00:00Z"), |
113 |
| - ("rated_app", "2019-12-21T00:00:00Z"), |
114 |
| - ("watched_movie", None), |
115 |
| - ] |
| 120 | + assert [(r["name"], r["last_seen_at"]) for r in response.json()["results"]] == expected_results |
116 | 121 |
|
117 | 122 | @patch("posthoganalytics.capture")
|
118 | 123 | def test_delete_event_definition(self, mock_capture):
|
|
0 commit comments