From f38fb52b956762c80e27a0054b370391e943eeab Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Fri, 19 Oct 2018 20:25:32 +0300 Subject: Add: create_change_from_log_entry --- muck/__init__.py | 8 +++++++- muck/change.py | 4 ++++ muck/change_tests.py | 22 ++++++++++++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) 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']) -- cgit v1.2.1