示例#1
0
    def test_update_user_restore(self, mock):
        # updating user restore should result in version change in restore resource
        #   so that CommCare mobile will refetch the resource
        turn_on_demo_mode(self.user, self.domain)
        app = self.factory.app
        app.practice_mobile_worker_id = self.user._id
        app.save()

        self.assertXmlPartialEqual(
            self._get_restore_resource(self.user.demo_restore_id),
            app.create_suite(),
            "./user-restore"
        )

        version_before = self.user.demo_restore_id
        turn_off_demo_mode(self.user)
        turn_on_demo_mode(self.user, self.domain)
        version_after = self.user.demo_restore_id
        self.assertNotEqual(version_before, version_after)

        # refetch so that memoized app.get_practice_user gets busted`
        app = Application.get(app._id)
        app.build_spec.version = '2.30.0'  # for some reason, this gets set to an old version, after refetch
        self.assertXmlPartialEqual(
            self._get_restore_resource(version_after),
            app.create_suite(),
            "./user-restore"
        )
    def test_update_user_restore(self, mock):
        # updating user restore should result in version change in restore resource
        #   so that CommCare mobile will refetch the resource
        turn_on_demo_mode(self.user, self.domain)
        app = self.factory.app
        app.practice_mobile_worker_id = self.user._id
        app.save()

        self.assertXmlPartialEqual(
            self._get_restore_resource(self.user.demo_restore_id),
            app.create_suite(),
            "./user-restore"
        )

        version_before = self.user.demo_restore_id
        turn_off_demo_mode(self.user)
        turn_on_demo_mode(self.user, self.domain)
        version_after = self.user.demo_restore_id
        self.assertNotEqual(version_before, version_after)

        # refetch so that memoized app.get_practice_user gets busted`
        app = Application.get(app._id)
        app.build_spec.version = '2.30.0'  # for some reason, this gets set to an old version, after refetch
        self.assertXmlPartialEqual(
            self._get_restore_resource(version_after),
            app.create_suite(),
            "./user-restore"
        )
示例#3
0
    def test_demo_user_data_in_restore(self):
        # assert that demo users have '<data user_type="demo">' element in restore XML
        demo_element = '<data key="{}">{}</data>'.format(COMMCARE_USER_TYPE_KEY, COMMCARE_USER_TYPE_DEMO)

        turn_off_demo_mode(self.user)
        restore = self._raw_restore_response()
        self.assertFalse(demo_element in restore)

        turn_on_demo_mode(self.user, self.domain)
        restore = self._raw_restore_response()
        self.assertTrue(demo_element in restore)
示例#4
0
    def test_demo_restore(self):
        # restore should always update for normal users
        self._assert_restore(should_change=True)

        # restore should be frozen for demo user
        turn_on_demo_mode(self.user, self.domain)
        self._assert_restore(should_change=False)

        # restore should update once demo mode is off
        turn_off_demo_mode(self.user)
        self._assert_restore(should_change=True)
    def test_demo_restore(self):
        # restore should always update for normal users
        self._assert_restore(should_change=True)

        # restore should be frozen for demo user
        turn_on_demo_mode(self.user, self.domain)
        self._assert_restore(should_change=False)

        # restore should update once demo mode is off
        turn_off_demo_mode(self.user)
        self._assert_restore(should_change=True)
示例#6
0
    def test_demo_user_data_in_restore(self):
        # assert that demo users have '<data user_type="demo">' element in restore XML
        demo_element = '<data key="{}">{}</data>'.format(COMMCARE_USER_TYPE_KEY, COMMCARE_USER_TYPE_DEMO)

        turn_off_demo_mode(self.user)
        restore = self._raw_restore_response().decode('utf-8')
        self.assertFalse(demo_element in restore)

        turn_on_demo_mode(self.user, self.domain)
        restore = self._raw_restore_response().decode('utf-8')
        self.assertTrue(demo_element in restore)
示例#7
0
    def test_app_specific(self, mock):
        turn_on_demo_mode(self.user, self.domain)
        app = self.factory.app
        app.practice_mobile_worker_id = self.user._id

        # check suit contains user-restore resource
        self.assertXmlPartialEqual(
            self._get_restore_resource(self.user.demo_restore_id),
            app.create_suite(), "./user-restore")
        # check 'files/practice_user_restore.xml' is included in the build files
        app.create_build_files()
        app.save()
        self.assertTrue(
            app.lazy_fetch_attachment('files/practice_user_restore.xml'))
示例#8
0
    def test_commcare_version(self, mock):
        turn_on_demo_mode(self.user, self.domain)
        app = self.factory.app
        app.practice_mobile_worker_id = self.user._id
        app.build_spec.version = '2.20.0'  # less than supported version
        app.save()

        self.assertXmlDoesNotHaveXpath(app.create_suite(), "./user-restore")

        app.create_build_files()
        app.save()
        with self.assertRaises(ResourceNotFound):
            self.assertTrue(
                app.lazy_fetch_attachment('files/practice_user_restore.xml'))
    def test_app_specific(self, mock):
        turn_on_demo_mode(self.user, self.domain)
        app = self.factory.app
        app.practice_mobile_worker_id = self.user._id

        # check suit contains user-restore resource
        self.assertXmlPartialEqual(
            self._get_restore_resource(self.user.demo_restore_id),
            app.create_suite(),
            "./user-restore"
        )
        # check 'files/practice_user_restore.xml' is included in the build files
        app.create_build_files()
        app.save()
        self.assertTrue(app.lazy_fetch_attachment('files/practice_user_restore.xml'))
    def test_commcare_version(self, mock):
        turn_on_demo_mode(self.user, self.domain)
        app = self.factory.app
        app.practice_mobile_worker_id = self.user._id
        app.build_spec.version = '2.20.0'  # less than supported version
        app.save()

        self.assertXmlDoesNotHaveXpath(
            app.create_suite(),
            "./user-restore"
        )

        app.create_build_files()
        app.save()
        with self.assertRaises(ResourceNotFound):
            self.assertTrue(app.lazy_fetch_attachment('files/practice_user_restore.xml'))
示例#11
0
def turn_on_demo_mode_task(couch_user, domain):
    from corehq.apps.ota.utils import turn_on_demo_mode

    DownloadBase.set_progress(turn_on_demo_mode_task, 0, 100)
    results = turn_on_demo_mode(couch_user, domain)
    DownloadBase.set_progress(turn_on_demo_mode_task, 100, 100)

    return {'messages': results}
示例#12
0
def turn_on_demo_mode_task(couch_user, domain):
    from corehq.apps.ota.utils import turn_on_demo_mode

    DownloadBase.set_progress(turn_on_demo_mode_task, 0, 100)
    results = turn_on_demo_mode(couch_user, domain)
    DownloadBase.set_progress(turn_on_demo_mode_task, 100, 100)

    return {"messages": results}
    def test_profile_specific(self, mock):
        turn_on_demo_mode(self.user, self.domain)
        app = self.factory.app
        build_profile_id = "some_uuid"
        app.build_profiles[build_profile_id] = BuildProfile(
            langs=['en'], name='en-profile', practice_mobile_worker_id=self.user._id
        )

        self.assertXmlPartialEqual(
            self._get_restore_resource(self.user.demo_restore_id, build_profile_id),
            app.create_suite(build_profile_id=build_profile_id),
            "./user-restore"
        )
        app.create_build_files(build_profile_id=build_profile_id)
        app.save()
        self.assertTrue(app.lazy_fetch_attachment('files/{profile}/practice_user_restore.xml'.format(
            profile=build_profile_id
        )))
示例#14
0
    def test_profile_specific(self, mock):
        turn_on_demo_mode(self.user, self.domain)
        app = self.factory.app
        build_profile_id = "some_uuid"
        app.build_profiles[build_profile_id] = BuildProfile(
            langs=['en'], name='en-profile', practice_mobile_worker_id=self.user._id
        )

        self.assertXmlPartialEqual(
            self._get_restore_resource(self.user.demo_restore_id, build_profile_id),
            app.create_suite(build_profile_id=build_profile_id),
            "./user-restore"
        )
        app.create_build_files(build_profile_id=build_profile_id)
        app.save()
        self.assertTrue(app.lazy_fetch_attachment('files/{profile}/practice_user_restore.xml'.format(
            profile=build_profile_id
        )))
示例#15
0
def turn_on_demo_mode_task(commcare_user_id, domain):
    from corehq.apps.ota.utils import turn_on_demo_mode
    from corehq.apps.users.models import CommCareUser

    user = CommCareUser.get(commcare_user_id)
    DownloadBase.set_progress(turn_on_demo_mode_task, 0, 100)
    results = turn_on_demo_mode(user, domain)
    DownloadBase.set_progress(turn_on_demo_mode_task, 100, 100)

    return {'messages': results}
示例#16
0
def turn_on_demo_mode_task(commcare_user_id, domain):
    from corehq.apps.ota.utils import turn_on_demo_mode
    from corehq.apps.users.models import CommCareUser

    user = CommCareUser.get(commcare_user_id)
    DownloadBase.set_progress(turn_on_demo_mode_task, 0, 100)
    results = turn_on_demo_mode(user, domain)
    DownloadBase.set_progress(turn_on_demo_mode_task, 100, 100)

    return {
        'messages': results
    }