Esempio n. 1
0
    def setUp(self):
        super(CommTrackSyncTest, self).setUp()
        # reused stuff
        self.casexml_user = self.user.to_casexml_user()
        self.sp_block = CaseBlock(
            case_id=self.sp._id,
            version=V2,
        ).as_xml()

        # bootstrap ota stuff
        self.ct_settings.consumption_config = ConsumptionConfig(
            min_transactions=0,
            min_window=0,
            optimal_window=60,
        )
        self.ct_settings.ota_restore_config = StockRestoreConfig(
            section_to_consumption_types={'stock': 'consumption'}
        )
        set_default_monthly_consumption_for_domain(self.domain.name, 5)
        self.ota_settings = self.ct_settings.get_ota_restore_settings()

        # get initial restore token
        restore_config = RestoreConfig(
            self.casexml_user,
            version=V2,
            stock_settings=self.ota_settings,
        )
        self.sync_log_id = synclog_id_from_restore_payload(restore_config.get_payload())
Esempio n. 2
0
    def setUp(self):
        super(CommTrackSyncTest, self).setUp()
        # reused stuff
        self.restore_user = self.user.to_ota_restore_user()
        self.sp_block = CaseBlock(case_id=self.sp.case_id, ).as_xml()

        # bootstrap ota stuff
        self.ct_settings.consumption_config = ConsumptionConfig(
            min_transactions=0,
            min_window=0,
            optimal_window=60,
        )
        self.ct_settings.ota_restore_config = StockRestoreConfig(
            section_to_consumption_types={'stock': 'consumption'})
        set_default_monthly_consumption_for_domain(self.domain.name, 5)
        self.ota_settings = self.ct_settings.get_ota_restore_settings()

        # get initial restore token
        restore_config = RestoreConfig(
            project=self.domain,
            restore_user=self.restore_user,
            params=RestoreParams(version=V2),
        )
        self.sync_log_id = synclog_id_from_restore_payload(
            restore_config.get_payload().as_string())
Esempio n. 3
0
    def test_previous_log_purged(self):
        initial_synclog_id = synclog_id_from_restore_payload(
            generate_restore_payload(self.project,
                                     self.restore_user,
                                     items=True))

        # form submission success when there is no previous sync log
        form_xml = get_simple_form_xml(uuid.uuid4().hex)
        submit_form_locally(form_xml,
                            self.domain,
                            last_sync_token=initial_synclog_id)

        # second sync
        synclog_id = synclog_id_from_restore_payload(
            generate_restore_payload(self.project,
                                     self.restore_user,
                                     restore_id=initial_synclog_id))

        synclog = get_properly_wrapped_sync_log(synclog_id)
        self.assertEqual(synclog.previous_log_id, initial_synclog_id)
        self.assertFalse(synclog.previous_log_removed)

        # form submission after second sync should remove first synclog
        form_xml = get_simple_form_xml(uuid.uuid4().hex)
        submit_form_locally(form_xml, self.domain, last_sync_token=synclog_id)

        synclog = get_properly_wrapped_sync_log(synclog_id)
        self.assertEqual(synclog.previous_log_id, initial_synclog_id)
        self.assertTrue(synclog.previous_log_removed)

        with self.assertRaises(ResourceNotFound):
            get_properly_wrapped_sync_log(initial_synclog_id)

        # form submissions after purge don't fail
        form_xml = get_simple_form_xml(uuid.uuid4().hex)
        submit_form_locally(form_xml, self.domain, last_sync_token=synclog_id)

        # restores after purge don't fail
        response = generate_restore_response(self.project,
                                             self.restore_user,
                                             restore_id=synclog_id)
        self.assertEqual(response.status_code, 200)
    def test_copy_payload(self):
        sync_log = SimplifiedSyncLog(case_ids_on_phone=set(["case-1", "case-2"]))
        sync_log.save()
        payload = dummy_restore_xml(sync_log._id).strip()
        fd, path = tempfile.mkstemp()
        with os.fdopen(fd, "wb") as f:
            f.write(payload)

        with open(path, "r") as f:
            updated_fileref = copy_payload_and_synclog_and_get_new_file(f)

        updated_payload = updated_fileref.file.read()
        updated_id = synclog_id_from_restore_payload(updated_payload)
        self.assertNotEqual(sync_log._id, updated_id)
        self.assertTrue(_restore_id_block(updated_id) in updated_payload)
        self.assertFalse(sync_log._id in updated_payload)
        updated_log = get_properly_wrapped_sync_log(updated_id)
        self.assertEqual(updated_log.case_ids_on_phone, sync_log.case_ids_on_phone)
    def test_copy_payload(self):
        sync_log = SimplifiedSyncLog(case_ids_on_phone=set(['case-1', 'case-2']))
        sync_log.save()
        payload = dummy_restore_xml(sync_log._id).strip()
        fd, path = tempfile.mkstemp()
        with os.fdopen(fd, 'wb') as f:
            f.write(payload)

        with open(path, 'r') as f:
            updated_fileref = copy_payload_and_synclog_and_get_new_file(f)

        updated_payload = updated_fileref.file.read()
        updated_id = synclog_id_from_restore_payload(updated_payload)
        self.assertNotEqual(sync_log._id, updated_id)
        self.assertTrue(_restore_id_block(updated_id) in updated_payload)
        self.assertFalse(sync_log._id in updated_payload)
        updated_log = get_properly_wrapped_sync_log(updated_id)
        self.assertEqual(updated_log.case_ids_on_phone, sync_log.case_ids_on_phone)
Esempio n. 6
0
    def setUp(self):
        super(CommTrackSyncTest, self).setUp()
        self.group = Group(domain=util.TEST_DOMAIN, name='commtrack-folks',
                           users=[self.user._id], case_sharing=True)
        self.group._id = self.sp.owner_id
        self.group.save()

        self.restore_user = self.user.to_ota_restore_user()
        self.sp_block = CaseBlock(
            case_id=self.sp.case_id,
        ).as_xml()

        # get initial restore token
        restore_config = RestoreConfig(
            project=self.domain,
            restore_user=self.restore_user,
            params=RestoreParams(version=V2),
        )
        self.sync_log_id = synclog_id_from_restore_payload(restore_config.get_payload().as_string())