def persister(self, tmpdir): from palladium.persistence import File model1 = Dummy() annotate(model1, { 'attachments/myatt.txt': 'aGV5', 'attachments/my2ndatt.txt': 'aG8=' }) model2 = Dummy() annotate(model2, {'attachments/myatt.txt': 'aG8='}) persister = File(str(tmpdir) + '/model-{version}') persister.write(model1) persister.write(model2) return persister
def test_loaded_back_on_read(self, persister, tmpdir): # Attachment is read back from the file into metadata # dictionary on read: model1 = persister.read(version=1) assert annotate(model1)['attachments/myatt.txt'] == b'aGV5' assert annotate(model1)['attachments/my2ndatt.txt'] == b'aG8='
def test_attachment_not_in_pickle(self, persister, tmpdir): # Attachment data is not pickled as part of the model: with open(tmpdir + '/model-1.pkl.gz', 'rb') as fh: with gzip.open(fh, 'rb') as f: model1 = pickle.load(f) assert 'attachments/myatt.txt' not in annotate(model1)
def test_without_existing_data(self, annotate): model = TestAnnotate() assert annotate(model, {'one': '11'}) == {'one': '11'} assert model.__metadata__['one'] == '11'
def test_with_existing_data(self, annotate): model = MagicMock(__metadata__={'one': 1, 'two': 2}) annotate(model, {'one': '11'}) assert model.__metadata__['one'] == '11' assert model.__metadata__['two'] == 2 assert annotate(model) == {'one': '11', 'two': 2}