def setUp(self): super(SyncPerformanceTest, self).setUp() # the other user is an "owner" of the original users cases as well, # for convenience self.project = Domain(name='sync-performance-tests') self.other_user = User(user_id=OTHER_USER_ID, username=OTHER_USERNAME, password="******", date_joined=datetime(2011, 6, 9), additional_owner_ids=[SHARED_ID], domain=self.project.name) self.referral_user = User(user_id=REFERRAL_USER_ID, username=REFERRAL_USERNAME, password="******", date_joined=datetime(2011, 6, 9), additional_owner_ids=[REFERRED_TO_GROUP], domain=self.project.name) # this creates the initial blank sync token in the database self.other_sync_log = synclog_from_restore_payload( generate_restore_payload(self.project, self.other_user)) self.referral_sync_log = synclog_from_restore_payload( generate_restore_payload(self.project, self.referral_user)) self.assertTrue(SHARED_ID in self.other_sync_log.owner_ids_on_phone) self.assertTrue( OTHER_USER_ID in self.other_sync_log.owner_ids_on_phone) self.user.additional_owner_ids = [SHARED_ID] self.sync_log = synclog_from_restore_payload( generate_restore_payload(self.project, self.user)) self.assertTrue(SHARED_ID in self.sync_log.owner_ids_on_phone) self.assertTrue(USER_ID in self.sync_log.owner_ids_on_phone)
def to_casexml_user(self): user = CaseXMLUser(user_id=self.userID, username=self.raw_username, password=self.password, date_joined=self.date_joined, user_data=self.user_data) def get_owner_ids(): return self.get_owner_ids() user.get_owner_ids = get_owner_ids user._hq_user = self # don't tell anyone that we snuck this here return user
def setUpClass(cls): cls.domain = uuid.uuid4().hex cls.project = Domain(name=cls.domain) cls.user_id = uuid.uuid4().hex cls.user = User(user_id=cls.user_id, username=uuid.uuid4().hex, password="******", date_joined=datetime(2014, 6, 6))
def testFromDjangoUser(self): django_user = DjangoUser(username="******", password="******", date_joined=datetime(2011, 6, 9)) django_user.save() user = User.from_django_user(django_user) self.assertEqual(str(django_user.pk), user.user_id) self.assertEqual("foo", user.username) self.assertEqual("secret", user.password) self.assertEqual(datetime(2011, 6, 9), user.date_joined) self.assertFalse(bool(user.user_data))
def setUp(self): delete_all_cases() delete_all_xforms() delete_all_sync_logs() self.project = Domain(name='state-hash-tests-project') self.user = User(user_id="state_hash", username="******", password="******", date_joined=datetime(2011, 6, 9)) # this creates the initial blank sync token in the database generate_restore_payload(self.project, self.user) self.sync_log = get_exactly_one_wrapped_sync_log()
def setUp(self): delete_all_cases() delete_all_xforms() delete_all_sync_logs() self.user = User(user_id="state_hash", username="******", password="******", date_joined=datetime(2011, 6, 9)) # this creates the initial blank sync token in the database generate_restore_payload(self.user) [sync_log] = SyncLog.view("phone/sync_logs_by_user", include_docs=True, reduce=False).all() self.sync_log = sync_log
def setUp(self): delete_all_cases() delete_all_xforms() delete_all_sync_logs() self.user = User(user_id=USER_ID, username="******", password="******", date_joined=datetime(2011, 6, 9)) # this creates the initial blank sync token in the database restore_config = RestoreConfig(self.user) self.sync_log = synclog_from_restore_payload( restore_config.get_payload())
def setUp(self): super(MultiUserSyncTest, self).setUp() # the other user is an "owner" of the original users cases as well, # for convenience self.other_user = User(user_id=OTHER_USER_ID, username="******", password="******", date_joined=datetime(2011, 6, 9), additional_owner_ids=[SHARED_ID]) # this creates the initial blank sync token in the database self.other_sync_log = synclog_from_restore_payload( generate_restore_payload(self.other_user)) self.assertTrue(SHARED_ID in self.other_sync_log.owner_ids_on_phone) self.assertTrue( OTHER_USER_ID in self.other_sync_log.owner_ids_on_phone) self.user.additional_owner_ids = [SHARED_ID] self.sync_log = synclog_from_restore_payload( generate_restore_payload(self.user)) self.assertTrue(SHARED_ID in self.sync_log.owner_ids_on_phone) self.assertTrue(USER_ID in self.sync_log.owner_ids_on_phone)
def testNameAndNumber(self): user = User( user_id="12345", username="******", password="******", date_joined=datetime(2011, 6, 9), first_name="mclovin", phone_number="0019042411080", ) payload = xml.get_registration_xml(user) def assertRegistrationData(key, val): if val is None: template = '<data key="{prefix}_{key}" />' else: template = '<data key="{prefix}_{key}">{val}</data>' self.assertIn( template.format(prefix=SYSTEM_PREFIX, key=key, val=val), payload, ) assertRegistrationData("first_name", "mclovin") assertRegistrationData("last_name", None) assertRegistrationData("phone_number", "0019042411080")
def testIndexes(self): CASE_ID = 'test-index-case' MOTHER_CASE_ID = 'text-index-mother-case' FATHER_CASE_ID = 'text-index-father-case' user = User(user_id=USER_ID, username="", password="", date_joined="") # Step 0. Create mother and father cases for prereq in [MOTHER_CASE_ID, FATHER_CASE_ID]: post_case_blocks([ CaseBlock(create=True, case_id=prereq, user_id=USER_ID, version=V2).as_xml() ]) # Step 1. Create a case with index <mom> create_index = CaseBlock( create=True, case_id=CASE_ID, user_id=USER_ID, owner_id=USER_ID, index={ 'mom': ('mother-case', MOTHER_CASE_ID) }, version=V2).as_xml(format_datetime=json_format_datetime) post_case_blocks([create_index]) check_user_has_case(self, user, create_index, version=V2) # Step 2. Update the case to delete <mom> and create <dad> now = datetime.datetime.utcnow() update_index = CaseBlock( case_id=CASE_ID, user_id=USER_ID, index={ 'mom': ('mother-case', ''), 'dad': ('father-case', FATHER_CASE_ID) }, version=V2, date_modified=now, ).as_xml(format_datetime=json_format_datetime) update_index_expected = CaseBlock( case_id=CASE_ID, user_id=USER_ID, owner_id=USER_ID, create=True, index={ 'dad': ('father-case', FATHER_CASE_ID) }, version=V2, date_modified=now, ).as_xml(format_datetime=json_format_datetime) post_case_blocks([update_index]) check_user_has_case(self, user, update_index_expected, version=V2) # Step 3. Put <mom> back now = datetime.datetime.utcnow() update_index = CaseBlock( case_id=CASE_ID, user_id=USER_ID, index={ 'mom': ('mother-case', MOTHER_CASE_ID) }, version=V2, date_modified=now, ).as_xml(format_datetime=json_format_datetime) update_index_expected = CaseBlock( case_id=CASE_ID, user_id=USER_ID, owner_id=USER_ID, create=True, index={ 'mom': ('mother-case', MOTHER_CASE_ID), 'dad': ('father-case', FATHER_CASE_ID) }, version=V2, date_modified=now, ).as_xml(format_datetime=json_format_datetime) post_case_blocks([update_index]) check_user_has_case(self, user, update_index_expected, version=V2)
def dummy_user(): return User(user_id=DUMMY_ID, username=DUMMY_USERNAME, password=DUMMY_PASSWORD, date_joined=datetime(2011, 6, 9), user_data={"something": "arbitrary"})
def restore(request): user = User.from_django_user(request.user) restore_id = request.GET.get('since') return generate_restore_response(user, restore_id)