Exemple #1
0
 def test_get_last_synclog_for_user(self):
     self.assert_docs_equal(get_last_synclog_for_user(self.user_id),
                            self.sync_logs[0])
Exemple #2
0
 def test_get_last_synclog_for_user(self):
     self.assert_docs_equal(
         get_last_synclog_for_user(self.user_id), self.sync_logs[0])
    def _test_sync_token(self, items):
        """
        Tests sync token / sync mode support
        """
        def get_all_syncslogs():
            return [properly_wrap_sync_log(log.doc) for log in SyncLogSQL.objects.all()]

        xml_data = self.get_xml('create_short')
        xml_data = xml_data.format(user_id=self.restore_user.user_id)
        submit_form_locally(xml_data, domain=self.project.name)

        restore_payload = deprecated_generate_restore_payload(
            self.project, self.restore_user, items=items)

        sync_log_id = get_last_synclog_for_user(self.restore_user.user_id).get_id
        expected_restore_payload = dummy_restore_xml(
            sync_log_id,
            const.CREATE_SHORT.format(user_id=self.restore_user.user_id),
            items=4 if items else None,
            user=self.restore_user,
        )
        check_xml_line_by_line(self, expected_restore_payload, restore_payload)

        sync_restore_payload = deprecated_generate_restore_payload(
            project=self.project,
            user=self.restore_user,
            restore_id=sync_log_id,
            items=items,
        )
        all_sync_logs = get_all_syncslogs()

        [latest_log] = [log for log in all_sync_logs
                        if log.get_id != sync_log_id]

        # should no longer have a case block in the restore XML
        check_xml_line_by_line(
            self,
            dummy_restore_xml(
                latest_log.get_id,
                items=3 if items else None,
                user=self.restore_user,
            ),
            sync_restore_payload,
        )

        # apply an update
        xml_data = self.get_xml('update_short')
        xml_data = xml_data.format(user_id=self.restore_user.user_id)
        submit_form_locally(xml_data, domain=self.project.name)

        sync_restore_payload = deprecated_generate_restore_payload(
            self.project,
            user=self.restore_user,
            restore_id=latest_log.get_id,
            items=items,
        )
        all_sync_logs = get_all_syncslogs()
        [even_latest_log] = [log for log in all_sync_logs
                             if log.get_id != sync_log_id and
                             log.get_id != latest_log.get_id]

        # case block should come back
        expected_sync_restore_payload = dummy_restore_xml(
            even_latest_log.get_id,
            const.UPDATE_SHORT.format(user_id=self.restore_user.user_id),
            items=4 if items else None,
            user=self.restore_user
        )
        check_xml_line_by_line(self, expected_sync_restore_payload,
                               sync_restore_payload)
Exemple #4
0
 def last_for_user(cls, user_id):
     from casexml.apps.phone.dbaccessors.sync_logs_by_user import get_last_synclog_for_user
     return get_last_synclog_for_user(user_id)
Exemple #5
0
    def last_for_user(cls, user_id):
        from casexml.apps.phone.dbaccessors.sync_logs_by_user import get_last_synclog_for_user

        return get_last_synclog_for_user(user_id)
    def _test_sync_token(self, items):
        """
        Tests sync token / sync mode support
        """
        def get_all_syncslogs():
            return [properly_wrap_sync_log(log.doc) for log in SyncLogSQL.objects.all()]

        xml_data = self.get_xml('create_short').decode('utf-8')
        xml_data = xml_data.format(user_id=self.restore_user.user_id)
        submit_form_locally(xml_data, domain=self.project.name)

        restore_payload = deprecated_generate_restore_payload(
            self.project, self.restore_user, items=items)

        sync_log_id = get_last_synclog_for_user(self.restore_user.user_id).get_id
        expected_restore_payload = dummy_restore_xml(
            sync_log_id,
            const.CREATE_SHORT.format(user_id=self.restore_user.user_id),
            items=4 if items else None,
            user=self.restore_user,
        )
        check_xml_line_by_line(self, expected_restore_payload, restore_payload)

        sync_restore_payload = deprecated_generate_restore_payload(
            project=self.project,
            user=self.restore_user,
            restore_id=sync_log_id,
            items=items,
        )
        all_sync_logs = get_all_syncslogs()

        [latest_log] = [log for log in all_sync_logs
                        if log.get_id != sync_log_id]

        # should no longer have a case block in the restore XML
        check_xml_line_by_line(
            self,
            dummy_restore_xml(
                latest_log.get_id,
                items=3 if items else None,
                user=self.restore_user,
            ),
            sync_restore_payload,
        )

        # apply an update
        xml_data = self.get_xml('update_short').decode('utf-8')
        xml_data = xml_data.format(user_id=self.restore_user.user_id)
        submit_form_locally(xml_data, domain=self.project.name)

        sync_restore_payload = deprecated_generate_restore_payload(
            self.project,
            user=self.restore_user,
            restore_id=latest_log.get_id,
            items=items,
        )
        all_sync_logs = get_all_syncslogs()
        [even_latest_log] = [log for log in all_sync_logs
                             if log.get_id != sync_log_id and
                             log.get_id != latest_log.get_id]

        # case block should come back
        expected_sync_restore_payload = dummy_restore_xml(
            even_latest_log.get_id,
            const.UPDATE_SHORT.format(user_id=self.restore_user.user_id),
            items=4 if items else None,
            user=self.restore_user
        )
        check_xml_line_by_line(self, expected_sync_restore_payload,
                               sync_restore_payload)