Example #1
0
    def test_user_types(self):
        UserDimLoader().commit(self.batch)

        self.assertEqual(UserDim.objects.count(), 5)
        self.assertEqual(
            UserDim.objects.filter(user_type=SYSTEM_USER_TYPE).first().user_id,
            SYSTEM_USER_ID,
        )
        self.assertEqual(
            UserDim.objects.filter(user_type=DEMO_USER_TYPE).first().user_id,
            DEMO_USER_ID,
        )
        self.assertEqual(
            UserDim.objects.filter(
                user_type=COMMCARE_SUPPLY_USER_TYPE).first().user_id,
            COMMTRACK_USERNAME,
        )
        self.assertEqual(
            UserDim.objects.filter(user_type=MOBILE_USER_TYPE).first().user_id,
            'greengoblin',
        )
        self.assertEqual(
            UserDim.objects.filter(user_type=WEB_USER_TYPE).first().user_id,
            'beeboobop',
        )
Example #2
0
 def tearDownClass(cls):
     cls.user.delete()
     UserStagingLoader().clear_records()
     UserDimLoader().clear_records()
     CommitRecord.objects.all().delete()
     Batch.objects.all().delete()
     super(TestUserLoad, cls).tearDownClass()
Example #3
0
    def test_basic_user_group_insert(self):
        UserDimLoader().commit(self.batch)
        self.assertEqual(UserDim.objects.count(), 3)

        # Setup group records to have multiple users
        dogs = create_group_staging_record(
            self.domain,
            'dogs',
            user_ids=[self.blue_dog.user_id, self.black_dog.user_id],
            batch_id=self.batch.id)
        create_group_staging_record(self.domain,
                                    'cats',
                                    user_ids=[self.yellow_cat.user_id],
                                    batch_id=self.batch.id)
        GroupDimLoader().commit(self.batch)
        self.assertEqual(GroupDim.objects.count(), 2)

        UserGroupDimLoader().commit(self.batch)
        self.assertEqual(UserGroupDim.objects.count(), 3)
        dog_relations = UserGroupDim.objects.filter(
            group_dim=GroupDim.objects.get(group_id=dogs.group_id))
        self.assertEqual(
            dog_relations.count(),
            2,
        )
        self.assertEqual(
            set(dog_relations.values_list('user_dim_id', flat=True)),
            set(
                UserDim.objects.filter(user_id__in=[
                    self.blue_dog.user_id, self.black_dog.user_id
                ]).values_list('id', flat=True)),
        )
Example #4
0
 def tearDownClass(cls):
     GroupStagingLoader().clear_records()
     UserStagingLoader().clear_records()
     GroupDimLoader().clear_records()
     UserDimLoader().clear_records()
     UserGroupDimLoader().clear_records()
     super(TestUserGroupDim, cls).tearDownClass()
Example #5
0
 def bootstrap_user_staging(cls):
     create_user_staging_record(
         domain='test1',
         user_id='u1',
         username='******',
         doc_type='CommCareUser',
         batch_id=cls.batch.id,
     )
     create_user_staging_record(
         domain='test1',
         user_id='u2',
         username='******',
         doc_type='CommCareUser',
         batch_id=cls.batch.id,
     )
     create_user_staging_record(domain=None,
                                username='******',
                                user_id='u3',
                                doc_type='WebUser',
                                batch_id=cls.batch.id,
                                domain_memberships=[
                                    {
                                        'domain': 'test1',
                                        'is_admin': True
                                    },
                                    {
                                        'domain': 'test2',
                                        'is_admin': False
                                    },
                                ])
     UserDimLoader().commit(cls.batch)
Example #6
0
 def tearDownClass(cls):
     for record in cls.records:
         record.delete()
     UserDimLoader().clear_records()
     UserStagingLoader().clear_records()
     super(TestUserDim, cls).tearDownClass()
Example #7
0
 def tearDownClass(cls):
     DomainMembershipDimLoader().clear_records()
     UserDimLoader().clear_records()
     UserStagingLoader().clear_records()
     super(TestDomainMembershipDim, cls).tearDownClass()