diff options
author | Lars Wirzenius <liw@liw.fi> | 2018-10-19 20:25:32 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2018-10-19 20:27:00 +0300 |
commit | f38fb52b956762c80e27a0054b370391e943eeab (patch) | |
tree | 20bd00aa208783d28bcdde911b3bb37bf5b1637b | |
parent | 479a267173a93be604102746be94b9a64fcb7330 (diff) | |
download | muck-poc-f38fb52b956762c80e27a0054b370391e943eeab.tar.gz |
Add: create_change_from_log_entry
-rw-r--r-- | muck/__init__.py | 8 | ||||
-rw-r--r-- | muck/change.py | 4 | ||||
-rw-r--r-- | muck/change_tests.py | 22 |
3 files changed, 33 insertions, 1 deletions
diff --git a/muck/__init__.py b/muck/__init__.py index 16bd12f..5e20126 100644 --- a/muck/__init__.py +++ b/muck/__init__.py @@ -14,5 +14,11 @@ from .exc import Error -from .change import Change, CreateChange, UpdateChange, DeleteChange +from .change import ( + Change, + CreateChange, + UpdateChange, + DeleteChange, + create_change_from_log_entry, +) from .mem import MemoryStore diff --git a/muck/change.py b/muck/change.py index d5a3fd2..9495b14 100644 --- a/muck/change.py +++ b/muck/change.py @@ -57,3 +57,7 @@ class DeleteChange(Change): def __init__(self, meta=None, res=None): super().__init__(op='delete', meta=meta, res={}) + + +def create_change_from_log_entry(entry): + return Change(op=entry['op'], meta=entry['meta'], res=entry['res']) diff --git a/muck/change_tests.py b/muck/change_tests.py index 7c1fd34..5cae9ce 100644 --- a/muck/change_tests.py +++ b/muck/change_tests.py @@ -91,3 +91,25 @@ class ChangeTests(unittest.TestCase): }, 'res': {}, }) + + +class CreateChangeFromLogEntryTests(unittest.TestCase): + + def test_creates_create(self): + entry = { + 'op': 'create', + 'meta': { + 'id': 'id-1', + 'rev': 'rev-1', + }, + 'res': { + 'foo': 'bar', + }, + } + + chg = muck.create_change_from_log_entry(entry) + + self.assertEqual(chg.get_op(), 'create') + self.assertEqual(chg.get_id(), 'id-1') + self.assertEqual(chg.get_rev(), 'rev-1') + self.assertEqual(chg.get_res(), entry['res']) |