def _revision_from_dict(dict: dict) -> Revision: #todo ... there must be a better whay of doing this ! revision_id = dict['id'] revision_info = dict["revision_info"] return Revision( revision_id, RevisionInfo(who=revision_info['who'], what=revision_info['what'], when=revision_info['when']))
def _store_content(lib, ticker, content, revision_info) -> Revision: logging.info("storing content {} {}".format(lib, ticker)) original_meta_d = lib.read_metadata(ticker).metadata old_revisions = get_revisions_from_metadata(original_meta_d) last_revision = old_revisions[-1] next_revision_id = str(int(last_revision.id) + 1) new_revision = Revision(next_revision_id, revision_info) add_revision_to_metadata(new_revision, original_meta_d) ret = lib.write(ticker, content, original_meta_d) return new_revision
def test_revision_storage(self): time_now = datetime.datetime.now() info = RevisionInfo(who="aPerson",what="a Change", when=time_now) metadata = {} add_revision_to_metadata(Revision("1",info),metadata) info2 = RevisionInfo(who="anotherPerson", what="anotherChange", when=time_now) add_revision_to_metadata( Revision("2", info2), metadata) revs = get_revisions_from_metadata(metadata) self.assertEquals(2,len(revs)) revision = revs[0] self.assertEquals("1",revision.id) self.assertEquals("a Change", revision.revision_info.what) self.assertEquals("aPerson", revision.revision_info.who) self.assertEquals(time_now, revision.revision_info.when) revision = revs[1] self.assertEquals("2",revision.id) self.assertEquals("anotherChange", revision.revision_info.what) self.assertEquals("anotherPerson", revision.revision_info.who) self.assertEquals(time_now, revision.revision_info.when)
import pandas as pd test_header = MatrixHeader(name="hello", revision_id=5, storage_method="test", path=".", memory_style=None, description="None") test_content = pd.DataFrame(data={ 'col1': [1], 'col2': [2] }, index=['2019-01-01']) time_now = datetime.now() test_revision = Revision("abc", RevisionInfo("who", "what", time_now)) class TestAbstractBroker(unittest.TestCase): @patch.multiple(StorageMethod, __abstractmethods__=set()) def setUp(self): self.mock_storage_method = StorageMethod("test") self.broker = AbstractDataBroker(self.mock_storage_method) def tearDown(self): pass def test_invalid_protocol(self): with self.assertRaises(DataBroker.ProtocolException): self.broker.checkout("xyz://hello?myParam=1")
def import_pandas(lib, pd, symbol_name, revision_info): meta = {} add_revision_to_metadata(Revision('1', revision_info), meta) lib.write(symbol_name, pd, meta)