def test_todict(context, d): assert 'lattice' not in context.__dict__ if 'lattice' in d: context = Context(context.objects, context.properties, context.bools) assert 'lattice' not in context.__dict__ for ignore_lattice in (False, None): assert context.todict(ignore_lattice=ignore_lattice) == d assert 'lattice' in context.__dict__ else: for ignore_lattice in (True, None): assert context.todict(ignore_lattice=ignore_lattice) == d assert 'lattice' not in context.__dict__
def test_dict_roundtrip(context, ignore_lattice): context = Context(context.objects, context.properties, context.bools) assert 'lattice' not in context.__dict__ d = context.todict(ignore_lattice=ignore_lattice) assert isinstance(d, dict) and d assert all(d[k] for k in ('objects', 'properties', 'context')) if ignore_lattice or ignore_lattice is None: assert 'lattice' not in context.__dict__ assert 'lattice' not in d else: assert 'lattice' in context.__dict__ assert d['lattice'] result = Context.fromdict(d) assert isinstance(result, Context) assert result == context if ignore_lattice or ignore_lattice is None: assert 'lattice' not in result.__dict__ else: assert 'lattice' in result.__dict__ assert result.lattice._eq(context.lattice)