class SplitterDiffs(object): """Implementation of Django+Elastic Search as regulations backend""" def __init__(self): self.dm = DMDiffs() self.es = ESDiffs() self.get = self.dm.get def put(self, label, old_version, new_version, diff): """Write to both""" self.dm.put(label, old_version, new_version, diff) self.es.put(label, old_version, new_version, diff)
def test_get_success(self): return_value = { 'label': 'lablab', 'old_version': 'oldold', 'new_version': 'newnew', 'diff': { 'some': 'body' } } with self.expect_get('diff', 'lablab/oldold/newnew', return_value): self.assertEqual(ESDiffs().get('lablab', 'oldold', 'newnew'), {"some": 'body'})
def test_insert(self): with self.expect_insert('diff', 'lablab/oldold/newnew') as insert: ESDiffs().insert('lablab', 'oldold', 'newnew', {"some": "structure"}) self.assertEqual( insert.call_args[0][2], { 'label': 'lablab', 'old_version': 'oldold', 'new_version': 'newnew', 'diff': { 'some': 'structure' } })
def test_get_404(self): with self.expect_get('diff', 'lablab/oldold/newnew'): self.assertIsNone(ESDiffs().get('lablab', 'oldold', 'newnew'))
def __init__(self): self.dm = DMDiffs() self.es = ESDiffs() self.get = self.dm.get