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" )
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)
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)
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)
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'))
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'))
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 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 )))
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 )))
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}
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 }