예제 #1
0
    def test_new_barrier_ids_current_user(self):
        """
        Changes made by the current user should not be included in new_barrier_ids
        """
        barrier1 = BarrierFactory(priority="LOW")
        barrier2 = BarrierFactory(priority="MEDIUM")
        barrier3 = BarrierFactory(priority="HIGH")

        user = create_test_user(sso_user_id=self.sso_user_data_1["user_id"])

        saved_search = SavedSearch.objects.create(
            user=user, name="Medium", filters={"priority": ["MEDIUM"]})
        saved_search.mark_as_seen()

        assert saved_search.new_barrier_ids == []

        # Barriers created by current user should be ignored
        api_client = self.create_api_client(user=user)
        report = ReportFactory(priority="MEDIUM", created_by=user)
        submit_url = reverse("submit-report", kwargs={"pk": report.id})
        response = api_client.put(submit_url)
        assert status.HTTP_200_OK == response.status_code

        saved_search = SavedSearch.objects.get(pk=saved_search.pk)
        assert report.pk not in saved_search.new_barrier_ids
        assert saved_search.new_barrier_ids == []

        # Barriers changed by current user should be ignored
        barrier1.priority = BarrierPriority.objects.get(code="MEDIUM")
        barrier1.modified_by = user
        barrier1.save()

        saved_search = SavedSearch.objects.get(pk=saved_search.pk)
        assert barrier1.pk not in saved_search.new_barrier_ids
        assert saved_search.new_barrier_ids == []
예제 #2
0
    def test_new_barriers_since_notified_other_user(self):
        """
        Changes made by other users should be included in new_barriers_since_notified
        """
        barrier1 = BarrierFactory(priority="LOW")
        barrier2 = BarrierFactory(priority="MEDIUM")
        barrier3 = BarrierFactory(priority="HIGH")

        user = create_test_user(sso_user_id=self.sso_user_data_1["user_id"])
        user2 = create_test_user(sso_user_id=self.sso_user_data_2["user_id"])

        saved_search = SavedSearch.objects.create(
            user=user, name="Medium", filters={"priority": ["MEDIUM"]})
        saved_search.mark_as_notified()

        assert saved_search.new_barriers_since_notified.exists() is False

        # Newly created barriers should be in the list
        barrier4 = BarrierFactory(priority="MEDIUM")
        barrier5 = BarrierFactory(priority="UNKNOWN")
        saved_search = SavedSearch.objects.get(pk=saved_search.pk)
        assert barrier4 in saved_search.new_barriers_since_notified
        assert saved_search.new_barriers_since_notified.count() == 1

        # Existing barriers should be in the list
        barrier1.priority = BarrierPriority.objects.get(code="MEDIUM")
        barrier1.modified_by = user2
        barrier1.save()

        saved_search = SavedSearch.objects.get(pk=saved_search.pk)
        assert barrier1 in saved_search.new_barriers_since_notified
예제 #3
0
    def test_updated_barriers_since_notified_current_user(self):
        """
        Changes made by the current user should not be included in updated_barriers_since_notified
        """
        barrier1 = BarrierFactory(priority="LOW")
        barrier2 = BarrierFactory(priority="MEDIUM")
        barrier3 = BarrierFactory(priority="HIGH")

        user = create_test_user(sso_user_id=self.sso_user_data_1["user_id"])

        saved_search = SavedSearch.objects.create(
            user=user, name="Medium", filters={"priority": ["MEDIUM"]})
        saved_search.mark_as_notified()

        assert saved_search.updated_barriers_since_notified.exists() is False

        barrier2.summary = "New summary"
        barrier2.modified_by = user
        barrier2.save()

        saved_search = SavedSearch.objects.get(pk=saved_search.pk)
        assert barrier2 not in saved_search.updated_barriers_since_notified
        assert saved_search.updated_barriers_since_notified.exists() is False