# Copyright (C) 2018 Lars Wirzenius # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . import unittest import muck class ChangeTests(unittest.TestCase): meta = { 'id': 'id-1', 'rev': 'rev-1', } res = { 'foo': 'bar', } def test_generic(self): chg = muck.Change(op='foo', meta=self.meta, res=self.res) self.assertEqual(chg.get_op(), 'foo') self.assertEqual(chg.get_id(), 'id-1') self.assertEqual(chg.get_rev(), 'rev-1') self.assertEqual(chg.get_meta(), self.meta) self.assertEqual(chg.get_res(), self.res) self.assertEqual( chg.as_dict(), { 'op': 'foo', 'meta': { 'id': 'id-1', 'rev': 'rev-1', }, 'res': { 'foo': 'bar', }, }) def test_create(self): chg = muck.CreateChange(meta=self.meta, res=self.res) self.assertEqual( chg.as_dict(), { 'op': 'create', 'meta': { 'id': 'id-1', 'rev': 'rev-1', }, 'res': { 'foo': 'bar', }, }) def test_update(self): chg = muck.UpdateChange(meta=self.meta, res=self.res) self.assertEqual( chg.as_dict(), { 'op': 'update', 'meta': { 'id': 'id-1', 'rev': 'rev-1', }, 'res': { 'foo': 'bar', }, }) def test_delete(self): chg = muck.DeleteChange(meta=self.meta, res=self.res) self.assertEqual( chg.as_dict(), { 'op': 'delete', 'meta': { 'id': 'id-1', 'rev': 'rev-1', }, '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'])