コード例 #1
0
    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)
コード例 #2
0
ファイル: models.py プロジェクト: mchampanis/core-hq
    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
コード例 #3
0
 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))
コード例 #4
0
 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))
コード例 #5
0
ファイル: test_state_hash.py プロジェクト: ekush/commcare-hq
    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()
コード例 #6
0
    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
コード例 #7
0
    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())
コード例 #8
0
    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)
コード例 #9
0
    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")
コード例 #10
0
    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)
コード例 #11
0
ファイル: dummy.py プロジェクト: ekush/commcare-hq
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"})
コード例 #12
0
ファイル: views.py プロジェクト: kennknowles/casexml
def restore(request):
    user = User.from_django_user(request.user)
    restore_id = request.GET.get('since')
    return generate_restore_response(user, restore_id)