def test_create_delivery_manager(self): # PREPARE DATA project = FakeProjectFactory.create(status=settings.PROJECT_CH_PROJECT_STATUS_WAITING) project_settings = project.settings project_settings.launch['fix_password'] = '******' project_settings.save() # DO ACTION member = project.add_user_project_delivery_manager( self.super_user, faker.name(), faker.email(), ) # ASSERTS self.assertTrue(member.has_perm( settings.PROJECT_PERMS_VIEW_PROJECT, project, )) self.assertTrue(member.has_perm( settings.PROJECT_PERMS_DELIVERY_MANAGER, project, )) self.assertTrue(member.has_perm( settings.PROJECT_PERMS_PROJECT_MANAGER, project, ))
def setUpTestData(cls): cls.create_super_user(cls) request_mock_account.reset() request_mock_account.add_mock( cls.super_user, is_consultant=False, is_superuser=True) cls.project = FakeProjectFactory.create(created_by=cls.super_user) cls.team = cls.project.teams.first()
def test_coach_project_several_teams(self): # PREPARE DATA project = FakeProjectFactory.create( status=settings.PROJECT_CH_PROJECT_STATUS_STARTED, start=None) FakeTeamFactory.create(project=project) team = FakeTeamFactory.create(project=project) relation, _ = ConsultantProjectRole.objects.get_or_create_consultant( user_from=self.super_user, project=project, consultant=team.coach, exo_role=ExORole.objects.get( code=settings.EXO_ROLE_CODE_SPRINT_COACH), ) # ASSERTS url, _ = next_project_url(project, relation.consultant.user) expected_url = settings.FRONTEND_PROJECT_STEP_PAGE.format( **{ 'project_id': project.id, 'team_id': team.pk, 'step_id': project.steps.first().pk, 'section': 'learn' }) self.assertEqual(url, expected_url)
def create_consultant_project_role(self, exo_role): project = FakeProjectFactory.create( status=settings.PROJECT_CH_PROJECT_STATUS_STARTED) return FakeConsultantProjectRoleFactory.create( consultant=self.consultant, project=project, exo_role=exo_role, visible=True, status=settings.RELATION_ROLE_CH_ACTIVE)
def setUpTestData(cls): cls.create_super_user(cls) cls.project = FakeProjectFactory.create(created_by=cls.super_user) for team in cls.project.teams.all(): UserProjectRole.objects.create( project_role=cls.project.project_roles.get(code=settings.EXO_ROLE_CODE_SPRINT_COACH), teams=[team], user=cls.get_user(cls)) for _ in range(3): UserProjectRole.objects.create_participant( project=cls.project, teams=[team], name=faker.name(), email=faker.email())
def test_create_supervisor_previous_launch(self): # PREPARE DATA project = FakeProjectFactory.create() project_settings = project.settings project_settings.launch['fix_password'] = '******' project_settings.save() # DO ACTION member = project.add_user_project_supervisor(self.super_user, faker.name(), faker.email()) # ASSERTS self.assertTrue(member.has_usable_password()) project.launch(self.super_user) member.refresh_from_db() self.assertTrue(member.check_password('123456'))
def test_create_supervisor_no_customer(self): # PREPARE DATA project = FakeProjectFactory.create( status=settings.PROJECT_CH_PROJECT_STATUS_WAITING, customer=None) project_settings = project.settings project_settings.launch['fix_password'] = '******' project_settings.save() # DO ACTION member = project.add_user_project_supervisor( self.super_user, faker.name(), faker.email()) # ASSERTS self.assertIsNotNone(member)
def test_superuser(self): # PREPARE DATA project = FakeProjectFactory.create( status=settings.PROJECT_CH_PROJECT_STATUS_STARTED) FakeTeamFactory.create(project=project) # ASSERTS url, _ = next_project_url(project, self.super_user) expected_url = project.get_absolute_url() self.assertEqual( url, expected_url, 'Superuser', )
def test_create_supervisor(self): # PREPARE DATA project = FakeProjectFactory.create(status=settings.PROJECT_CH_PROJECT_STATUS_WAITING) project_settings = project.settings project_settings.launch['fix_password'] = '******' project_settings.save() # DO ACTION member = project.add_user_project_supervisor(self.super_user, faker.name(), faker.email()) # ASSERTS self.assertTrue(member.check_password('123456')) self.assertTrue(member.has_perm(settings.PROJECT_PERMS_VIEW_PROJECT, project)) self.assertTrue(member.has_perm(settings.PROJECT_PERMS_ONLY_VIEW_PROJECT, project)) FakeTeamFactory.create_batch(size=3, project=project, user_from=self.super_user) teams = Team.objects.filter_by_project(project).filter_by_user(project, member) self.assertEqual(teams.count(), 3)
def test_staff_user(self): # PREPARE DATA project = FakeProjectFactory.create( status=settings.PROJECT_CH_PROJECT_STATUS_STARTED) FakeTeamFactory.create(project=project) exo_staff_user = FakeUserFactory.create(is_superuser=False, is_active=True, is_staff=True) project.add_user_project_staff(self.super_user, exo_staff_user.short_name, exo_staff_user.email) # ASSERTS url, _ = next_project_url(project, exo_staff_user) expected_url = '' self.assertEqual( url, expected_url, 'Staff', )
def test_create_reporter(self): # PREPARE DATA project = FakeProjectFactory.create(status=settings.PROJECT_CH_PROJECT_STATUS_WAITING) FakeTeamFactory.create_batch(size=3, project=project) # DO ACTION relation, _ = ConsultantProjectRole.objects.get_or_create_consultant( user_from=self.super_user, project=project, status=settings.RELATION_ROLE_CH_ACTIVE, consultant=FakeConsultantFactory.create(user__is_active=True), exo_role=ExORole.objects.get(code=settings.EXO_ROLE_CODE_SPRINT_REPORTER) ) # ASSERTS member = relation.consultant.user self.assertTrue(member.has_perm(settings.PROJECT_PERMS_VIEW_PROJECT, project)) self.assertTrue(member.has_perm(settings.PROJECT_PERMS_ONLY_VIEW_PROJECT, project)) teams = Team.objects.filter_by_project(project).filter_by_user(project, member) self.assertEqual(teams.count(), 3)
def test_create_exo_staff(self): # PREPARE DATA project = FakeProjectFactory.create(status=settings.PROJECT_CH_PROJECT_STATUS_WAITING) project_settings = project.settings project_settings.launch['fix_password'] = '******' project_settings.save() delivery_manager_user = FakeUserFactory.create( is_superuser=True, is_active=True, is_staff=True, password='******') exo_staff_user = FakeUserFactory.create( is_superuser=True, is_active=True, is_staff=True, password='******') project.add_user_project_delivery_manager( self.super_user, delivery_manager_user.short_name, delivery_manager_user.email) # DO ACTION member = project.add_user_project_staff( self.super_user, exo_staff_user.short_name, exo_staff_user.email) # ASSERTS self.assertTrue(member.has_perm(settings.PROJECT_PERMS_VIEW_PROJECT, project)) self.assertTrue( member.has_perm( settings.PROJECT_PERMS_DELIVERY_MANAGER, project)) delivery_managers = project.delivery_managers self.assertEqual(len(delivery_managers), 1)
def test_jobs_for_projects_with_training_customer(self): # PREPARE DATA customer = FakeCustomerFactory.create( customer_type=settings.CUSTOMER_CH_TRAINING) project = FakeProjectFactory.create( customer=customer, status=settings.PROJECT_CH_PROJECT_STATUS_STARTED) for code in ExORole.objects.all().filter_by_category_code( settings.EXO_ROLE_CATEGORY_EXO_SPRINT).values_list('code', flat=True): exo_role = ExORole.objects.get(code=code) # DO ACTION c_project_role = FakeConsultantProjectRoleFactory.create( consultant=self.consultant, project=project, exo_role=exo_role, visible=True, status=settings.RELATION_ROLE_CH_ACTIVE) # ASSERTS self.assertTrue(CoreJob.objects.all().filter_by_instance( c_project_role).exists())
def setUpTestData(cls): cls.create_super_user(cls) cls.project = FakeProjectFactory.create(created_by=cls.super_user)
def setUpTestData(cls): cls.create_super_user(cls) cls.project = FakeProjectFactory.create(created_by=cls.super_user) cls.team = cls.project.teams.first() cls.initialize(cls)
def setUp(self): super().setUp() self.create_user() self.project = FakeProjectFactory.create(created_by=self.user)