Esempio n. 1
0
 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)))
Esempio n. 2
0
    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')
Esempio n. 3
0
    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()
Esempio n. 4
0
 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)