def test_retrieve_notify_policies_by_anonymous_user(client): project = f.ProjectFactory.create() policy = services.get_notify_policy(project, project.owner) url = reverse("notifications-detail", args=[policy.pk]) response = client.get(url, content_type="application/json") assert response.status_code == 404, response.status_code assert response.data["_error_message"] == "No NotifyPolicy matches the given query.", str(response.content)
def test_create_retrieve_notify_policy(): project = f.ProjectFactory.create() policy_model_cls = apps.get_model("notifications", "NotifyPolicy") current_number = policy_model_cls.objects.all().count() assert current_number == 0 policy = services.get_notify_policy(project, project.owner) current_number = policy_model_cls.objects.all().count() assert current_number == 1 assert policy.notify_level == NotifyLevel.notwatch
def test_watching_users_to_notify_on_issue_modification_2(): # If: # - the user is watching the issue # - the user is not watching the project # - the notify policy is notwatch # Then: # - email is sent project = f.ProjectFactory.create(anon_permissions=["view_issues"]) issue = f.IssueFactory.create(project=project) watching_user = f.UserFactory() issue.add_watcher(watching_user) watching_user_policy = services.get_notify_policy(project, watching_user) issue.description = "test1" issue.save() watching_user_policy.notify_level = NotifyLevel.notwatch users = services.get_users_to_notify(issue) assert users == {watching_user, issue.owner}
def test_watching_users_to_notify_on_issue_modification_2(): # If: # - the user is watching the issue # - the user is not watching the project # - the notify policy is involved # Then: # - email is sent project = f.ProjectFactory.create(anon_permissions= ["view_issues"]) issue = f.IssueFactory.create(project=project) watching_user = f.UserFactory() issue.add_watcher(watching_user) watching_user_policy = services.get_notify_policy(project, watching_user) issue.description = "test1" issue.save() watching_user_policy.notify_level = NotifyLevel.involved users = services.get_users_to_notify(issue) assert users == {watching_user, issue.owner}
def remove_watcher(self, user): notify_policy = get_notify_policy(self, user) set_notify_policy_level_to_ignore(notify_policy)