|
1 | 1 | import json
|
| 2 | +import textwrap |
2 | 3 | from unittest.mock import patch
|
3 | 4 |
|
4 | 5 | import pytest
|
@@ -1487,6 +1488,57 @@ def test_next_shifts_per_user(
|
1487 | 1488 | assert returned_data == expected
|
1488 | 1489 |
|
1489 | 1490 |
|
| 1491 | +@pytest.mark.django_db |
| 1492 | +def test_next_shifts_per_user_ical_schedule_using_emails( |
| 1493 | + make_organization_and_user_with_plugin_token, make_user_for_organization, make_user_auth_headers, make_schedule |
| 1494 | +): |
| 1495 | + organization, admin, token = make_organization_and_user_with_plugin_token() |
| 1496 | + client = APIClient() |
| 1497 | + |
| 1498 | + user = make_user_for_organization(organization, username="testing", email="testing@testing.com") |
| 1499 | + # ical file using emails as reference |
| 1500 | + cached_ical_primary_schedule = textwrap.dedent( |
| 1501 | + """ |
| 1502 | + BEGIN:VCALENDAR |
| 1503 | + VERSION:2.0 |
| 1504 | + PRODID:testing |
| 1505 | + CALSCALE:GREGORIAN |
| 1506 | + BEGIN:VEVENT |
| 1507 | + CREATED:20220316T121102Z |
| 1508 | + LAST-MODIFIED:20230127T151619Z |
| 1509 | + DTSTAMP:20230127T151619Z |
| 1510 | + UID:something |
| 1511 | + SUMMARY:testing@testing.com |
| 1512 | + RRULE:FREQ=WEEKLY |
| 1513 | + DTSTART;TZID=Europe/Madrid:20220309T130000 |
| 1514 | + DTEND;TZID=Europe/Madrid:20220309T133000 |
| 1515 | + END:VEVENT |
| 1516 | + BEGIN:VEVENT |
| 1517 | + CREATED:20220316T121102Z |
| 1518 | + LAST-MODIFIED:20230127T151619Z |
| 1519 | + DTSTAMP:20230127T151619Z |
| 1520 | + UID:something-else |
| 1521 | + SUMMARY:testing_unknown@testing.com |
| 1522 | + RRULE:FREQ=WEEKLY |
| 1523 | + DTSTART;TZID=Europe/Madrid:20220309T150000 |
| 1524 | + DTEND;TZID=Europe/Madrid:20220309T153000 |
| 1525 | + END:VEVENT |
| 1526 | + END:VCALENDAR |
| 1527 | + """ |
| 1528 | + ) |
| 1529 | + schedule = make_schedule( |
| 1530 | + organization, |
| 1531 | + schedule_class=OnCallScheduleICal, |
| 1532 | + cached_ical_file_primary=cached_ical_primary_schedule, |
| 1533 | + ) |
| 1534 | + |
| 1535 | + url = reverse("api-internal:schedule-next-shifts-per-user", kwargs={"pk": schedule.public_primary_key}) |
| 1536 | + response = client.get(url, format="json", **make_user_auth_headers(admin, token)) |
| 1537 | + assert response.status_code == status.HTTP_200_OK |
| 1538 | + |
| 1539 | + assert set(response.data["users"].keys()) == {user.public_primary_key} |
| 1540 | + |
| 1541 | + |
1490 | 1542 | @pytest.mark.django_db
|
1491 | 1543 | def test_related_users(
|
1492 | 1544 | make_organization_and_user_with_plugin_token,
|
|
0 commit comments