def test_multi_domain(self): dm = DomainPermissionsMirror(source=self.domain.name, mirror=self.other_domain.name) dm.save() import_users_and_groups( self.domain.name, [self._get_spec(username=123, domain=self.other_domain.name)], [], self.uploading_user, mock.MagicMock()) self.assertIsNotNone( CommCareUser.get_by_username('{}@{}.commcarehq.org'.format( '123', self.other_domain.name)))
def test_multiple_domain_case_import(self): mirror_domain1 = DomainPermissionsMirror(source=self.domain, mirror='mirrordomain1') mirror_domain2 = DomainPermissionsMirror(source=self.domain, mirror='mirrordomain2') mirror_domain1.save() mirror_domain2.save() headers_with_domain = ['case_id', 'name', 'artist', 'domain'] config_1 = self._config(headers_with_domain, create_new_cases=True, search_column='case_id') case_with_domain_file = make_worksheet_wrapper( ['case_id', 'name', 'artist', 'domain'], ['', 'name-0', 'artist-0', self.domain], ['', 'name-1', 'artist-1', mirror_domain1.mirror], ['', 'name-2', 'artist-2', mirror_domain2.mirror], ['', 'name-3', 'artist-3', self.domain], ['', 'name-4', 'artist-4', self.domain], ['', 'name-5', 'artist-5', 'not-existing-domain']) res = do_import(case_with_domain_file, config_1, self.domain) self.assertEqual(5, res['created_count']) self.assertEqual(0, res['match_count']) self.assertEqual(1, res['failed_count']) # Asserting current domain cur_case_ids = self.accessor.get_case_ids_in_domain() cur_cases = list(self.accessor.get_cases(cur_case_ids)) self.assertEqual(3, len(cur_cases)) #Asserting current domain case property cases = {c.name: c for c in cur_cases} self.assertEqual(cases['name-0'].get_case_property('artist'), 'artist-0') # Asserting mirror domain 1 md1_case_ids = CaseAccessors( mirror_domain1.mirror).get_case_ids_in_domain() md1_cases = list(self.accessor.get_cases(md1_case_ids)) self.assertEqual(1, len(md1_cases)) # Asserting mirror domain 1 case property md1_cases_pro = {c.name: c for c in md1_cases} self.assertEqual(md1_cases_pro['name-1'].get_case_property('artist'), 'artist-1') # Asserting mirror domain 2 md2_case_ids = CaseAccessors( mirror_domain2.mirror).get_case_ids_in_domain() md2_cases = list(self.accessor.get_cases(md2_case_ids)) self.assertEqual(1, len(md2_cases)) # Asserting mirror domain 2 case propperty md2_cases_pro = {c.name: c for c in md2_cases} self.assertEqual(md2_cases_pro['name-2'].get_case_property('artist'), 'artist-2')
def test_domain_allow_mirroring(self): source_domain = self.domain + "-source" mirror = DomainPermissionsMirror(source=source_domain, mirror=self.domain) mirror.save() self._send_user_to_es() self.assertEqual(['superman'], UserES().domain(self.domain).values_list('username', flat=True)) self.assertEqual([], UserES().domain(source_domain).values_list('username', flat=True)) self.assertEqual( ['superman'], UserES().domain(self.domain, allow_mirroring=True).values_list('username', flat=True) ) mirror.delete()
def test_multi_domain(self): self.setup_users() dm = DomainPermissionsMirror(source=self.domain.name, mirror=self.other_domain.name) dm.save() import_users_and_groups(self.domain.name, [ self._get_spec(username='******', domain=self.other_domain.name, role=self.other_domain_role.name, email='*****@*****.**') ], [], self.uploading_user, mock.MagicMock(), True) self.assertIsNotNone( Invitation.objects.filter(email='*****@*****.**').first()) self.assertEqual( Invitation.objects.filter(email='*****@*****.**').first().domain, self.other_domain.name)