import pytest from django.apps import apps from django.core.urlresolvers import reverse from .. import factories as f from taiga.projects.settings import services from taiga.projects.settings.choices import Section pytestmark = pytest.mark.django_db def test_home_page_setting_existence(): project = f.ProjectFactory.create() assert not services.user_project_settings_exists(project, project.owner) services.create_user_project_settings(project, project.owner, Section.kanban) assert services.user_project_settings_exists(project, project.owner) def test_create_retrieve_home_page_setting(): project = f.ProjectFactory.create() policy_model_cls = apps.get_model("settings", "UserProjectSettings") current_number = policy_model_cls.objects.all().count() assert current_number == 0 setting = services.create_user_project_settings_if_not_exists(project, project.owner) current_number = policy_model_cls.objects.all().count() assert current_number == 1 assert setting.homepage == Section.timeline def test_retrieve_home_page_setting_with_allowed_sections(client): # Default template has next configuration: # "is_epics_activated": false, # "is_backlog_activated": true, # "is_kanban_activated": false, # "is_wiki_activated": true, # "is_issues_activated": true, # "videoconferences": null, user = f.UserFactory.create() project = f.ProjectFactory.create(owner=user) f.MembershipFactory.create(project=project, user=user, is_admin=True) url = reverse("user-project-settings-list") client.login(project.owner) response = client.get(url) assert response.status_code == 200 assert 1 == len(response.data) assert 1 == response.data[0].get("homepage") assert 6 == len(response.data[0].get("allowed_sections")) assert Section.timeline in response.data[0].get("allowed_sections") assert Section.search in response.data[0].get("allowed_sections") assert Section.team in response.data[0].get("allowed_sections") assert Section.backlog in response.data[0].get("allowed_sections") assert Section.issues in response.data[0].get("allowed_sections") assert Section.wiki in response.data[0].get("allowed_sections") assert Section.epics not in response.data[0].get("allowed_sections")