diff options
Diffstat (limited to 'muck/change_tests.py')
-rw-r--r-- | muck/change_tests.py | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/muck/change_tests.py b/muck/change_tests.py new file mode 100644 index 0000000..7c1fd34 --- /dev/null +++ b/muck/change_tests.py @@ -0,0 +1,93 @@ +# 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 <http://www.gnu.org/licenses/>. + + +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': {}, + }) |