Exemplo n.º 1
0
    def test_sync_custom_user_data(self):
        definition = CustomDataFieldsDefinition(
            domain=TEST_DOMAIN, field_type=UserFieldsView.field_type)
        definition.save()
        definition.set_fields([
            Field(slug='from_profile', label='From Profile'),
        ])
        definition.save()
        profile = CustomDataFieldsProfile(
            name='callcenter_profile',
            fields={'from_profile': 'yes'},
            definition=definition,
        )
        profile.save()

        self.user.update_metadata({
            '': 'blank_key',
            'blank_val': '',
            'ok': 'good',
            'name with spaces': 'ok',
            '8starts_with_a_number': '0',
            'xml_starts_with_xml': '0',
            '._starts_with_punctuation': '0',
            PROFILE_SLUG: profile.id,
        })
        sync_call_center_user_case(self.user)
        case = self._get_user_case()
        self.assertIsNotNone(case)
        self.assertEqual(case.get_case_property('blank_val'), '')
        self.assertEqual(case.get_case_property('ok'), 'good')
        self.assertEqual(case.get_case_property(PROFILE_SLUG), str(profile.id))
        self.assertEqual(case.get_case_property('from_profile'), 'yes')
        self.user.pop_metadata(PROFILE_SLUG)
        definition.delete()
Exemplo n.º 2
0
    def setUp(self):
        super(CallCenterCaseSharingTest, self).setUp()
        self.domain = create_domain(self.domain_name)
        self.supervisor = CommCareUser.create(self.domain_name,
                                              'supervisor@' + self.domain_name,
                                              '***', None, None)

        self.domain.call_center_config.enabled = True
        self.domain.call_center_config.case_owner_id = self.supervisor.get_id
        self.domain.call_center_config.case_type = 'cc_flw'
        self.domain.save()

        self.user = CommCareUser.create(self.domain_name,
                                        'user@' + self.domain_name, '***',
                                        None, None)
        sync_call_center_user_case(self.user, self.domain_name)

        self.group = Group(domain=self.domain_name,
                           name='case sharing group',
                           case_sharing=True,
                           users=[self.user.user_id])
        self.group.save()

        load_data(self.domain_name,
                  self.user.user_id,
                  'not this user',
                  self.group.get_id,
                  case_opened_by=self.user.user_id,
                  case_closed_by=self.user.user_id)
Exemplo n.º 3
0
    def test_sync_inactive(self):
        sync_call_center_user_case(self.user)
        case = self._get_user_case()
        self.assertIsNotNone(case)

        self.user.is_active = False
        sync_call_center_user_case(self.user)
        case = self._get_user_case()
        self.assertTrue(case.closed)
Exemplo n.º 4
0
 def test_sync(self):
     sync_call_center_user_case(self.user)
     case = self._get_user_case()
     self.assertIsNotNone(case)
     self.assertEqual(case.name, self.user.username)
     self.assertEqual(case.get_case_property('username'),
                      self.user.raw_username)
     self.assertIsNotNone(case.get_case_property('language'))
     self.assertIsNotNone(case.get_case_property('phone_number'))
Exemplo n.º 5
0
    def test_sync_retired(self):
        sync_call_center_user_case(self.user)
        case = self._get_user_case()
        self.assertIsNotNone(case)

        self.user.base_doc += DELETED_SUFFIX
        sync_call_center_user_case(self.user)
        case = self._get_user_case()
        self.assertTrue(case.closed)
Exemplo n.º 6
0
 def test_sync_full_name(self):
     other_user = CommCareUser.create(TEST_DOMAIN, 'user7', '***', None,
                                      None)
     self.addCleanup(other_user.delete, deleted_by=None)
     name = 'Ricky Bowwood'
     other_user.set_full_name(name)
     sync_call_center_user_case(other_user)
     case = self._get_user_case(other_user._id)
     self.assertIsNotNone(case)
     self.assertEqual(case.name, name)
Exemplo n.º 7
0
def create_domain_and_user(domain_name, username):
    domain = create_domain(domain_name)
    user = CommCareUser.get_by_username(username)
    if user:
        user.delete(domain_name, deleted_by=None)
    user = CommCareUser.create(domain_name, username, '***', None, None)

    domain.call_center_config.enabled = True
    domain.call_center_config.case_owner_id = user.user_id
    domain.call_center_config.case_type = CASE_TYPE
    domain.save()

    sync_call_center_user_case(user, domain_name)
    return domain, user
Exemplo n.º 8
0
 def test_call_center_not_default_case_owner(self):
     """
     call center case owner should not change on sync
     """
     factory = CaseFactory(domain=TEST_DOMAIN,
                           case_defaults={
                               'user_id': self.user_id,
                               'owner_id': 'another_user',
                               'case_type': CASE_TYPE,
                               'update': {
                                   'hq_user_id': self.user_id
                               }
                           })
     cases = factory.create_or_update_cases(
         [CaseStructure(attrs={'create': True})])
     sync_call_center_user_case(self.user)
     case = self._get_user_case()
     self.assertEqual(case.owner_id, cases[0].owner_id)
Exemplo n.º 9
0
    def setUp(self):
        super(CallCenterTestOpenedClosed, self).setUp()
        self.domain = create_domain(self.domain_name)
        self.supervisor = CommCareUser.create(self.domain_name,
                                              'supervisor@' + self.domain_name,
                                              '***', None, None)

        self.domain.call_center_config.enabled = True
        self.domain.call_center_config.case_owner_id = self.supervisor.get_id
        self.domain.call_center_config.case_type = 'cc_flw'
        self.domain.save()

        self.user = CommCareUser.create(self.domain_name,
                                        'user@' + self.domain_name, '***',
                                        None, None)
        sync_call_center_user_case(self.user, self.domain_name)

        load_data(self.domain_name,
                  self.user.user_id,
                  case_opened_by='not me',
                  case_closed_by='not me')
Exemplo n.º 10
0
    def setUp(self):
        super(CallCenterSupervisorGroupTest, self).setUp()
        self.domain = create_domain(self.domain_name)
        self.supervisor = CommCareUser.create(self.domain_name,
                                              'supervisor@' + self.domain_name,
                                              '***', None, None)

        self.supervisor_group = Group(domain=self.domain_name,
                                      name='supervisor group',
                                      case_sharing=True,
                                      users=[self.supervisor.get_id])
        self.supervisor_group.save()

        self.domain.call_center_config.enabled = True
        self.domain.call_center_config.case_owner_id = self.supervisor_group.get_id
        self.domain.call_center_config.case_type = 'cc_flw'
        self.domain.save()

        self.user = CommCareUser.create(self.domain_name,
                                        'user@' + self.domain_name, '***',
                                        None, None)
        sync_call_center_user_case(self.user)

        load_data(self.domain_name, self.user.user_id)
Exemplo n.º 11
0
 def test_no_location_sync(self):
     self.user.unset_location()
     self.user.save()
     sync_call_center_user_case(self.user)
     self.assertCallCenterCaseOwner("")
Exemplo n.º 12
0
 def test_opened_by_id_is_system(self):
     sync_call_center_user_case(self.user)
     case = self._get_user_case()
     self.assertEqual(case.opened_by, CALLCENTER_USER)