Пример #1
0
    def get_case(self, case_id):
        try:
            return CaseAccessorSQL.get_case(case_id)
        except CaseNotFound:
            pass

        try:
            return CaseAccessorCouch.get_case(case_id)
        except ResourceNotFound:
            pass

        return None
Пример #2
0
    def filter_closed_extensions(self, extensions_to_close):
        # filter out cases that are closed which we already have cached
        extensions_to_close = [
            case_id for case_id in extensions_to_close
            if case_id not in self.cache or not self.cache[case_id].closed
        ]
        if extensions_to_close:
            # filter out any other cases that are already closed (or deleted)
            closed_deleted = [
                case_id for case_id, _, _ in
                CaseAccessorCouch.get_closed_and_deleted_ids(self.domain, extensions_to_close)
            ]
            extensions_to_close = [case_id for case_id in extensions_to_close if case_id not in closed_deleted]

        return extensions_to_close
Пример #3
0
def get_couch_case(case_id):
    return CaseAccessorCouch.get_case(case_id)
Пример #4
0
 def get_reverse_indexed_cases(self,
                               case_ids,
                               case_types=None,
                               is_closed=None):
     return CaseAccessorCouch.get_reverse_indexed_cases(
         self.domain, case_ids, case_types=case_types, is_closed=is_closed)
Пример #5
0
 def case_exists(case_id):
     return CaseAccessorCouch.case_exists(case_id)
Пример #6
0
            kw.setdefault("diffs", IGNORE)
        return super().do_migration(*args, **kw)

    def do_case_diffs(self, cases=None, stop=False):
        self.migration_success = True  # clear migration failure on diff cases
        migrator = mod.get_migrator(self.domain_name, self.state_dir)
        return mod.do_case_diffs(migrator, cases, stop=stop, batch_size=100)

    def do_case_patch(self, cases=None, stop=False):
        self.migration_success = True  # clear migration failure on diff cases
        migrator = mod.get_migrator(self.domain_name, self.state_dir)
        return mod.do_case_patch(migrator, cases, stop=stop, batch_size=100)

    @contextmanager
    def augmented_couch_case(self, case_id):
        case = CaseAccessorCouch.get_case(case_id)
        with self.diff_without_rebuild():
            yield case

    def assert_patched_cases(self, case_ids=None):
        statedb = open_state_db(self.domain_name, self.state_dir)
        self.assertEqual(list(statedb.iter_patched_case_ids()), case_ids or [])
        self.assertFalse(list(statedb.iter_undiffed_case_ids()))


THING_FORM = """
<?xml version="1.0" ?>
<data
    name="Thing"
    uiVersion="1"
    version="11"
Пример #7
0
 def get_reverse_indexed_cases(self, case_ids, case_types=None, is_closed=None):
     return CaseAccessorCouch.get_reverse_indexed_cases(self.domain, case_ids,
                                                        case_types=case_types, is_closed=is_closed)
Пример #8
0
 def case_exists(case_id):
     return CaseAccessorCouch.case_exists(case_id)