def test_save_blank(self): """ Test saving a new Database """ db = NOSql.Database(DBPATH) db.save() self.assertTrue(DBPATH.exists()) try: db = NOSql.Database(DBPATH) except Exception as e: self.fail(f"Failed to load blank database:\n{traceback.format_exc()}")
def test_create(self): """ Tests that a new, blank database can be created """ db = NOSql.Database(":memory:") self.assertIsInstance(db,NOSql.Database) if DBPATH.exists(): try: DBPATH.unlink() except: RuntimeError("Could not create testfile path") try: db = NOSql.Database(DBPATH) self.assertIsInstance(db,NOSql.Database) except Exception as e: if DBPATH.exists(): DBPATH.unlink() raise e
def test_schema(self): """ Tests the Database._generateschema function """ db = NOSql.Database(":memory:") schema = NOSql.Database._generateschema(db) ## Any encoding other than "unicode" is outputted as bytes by ElementTree.tostring self.assertEqual(ElementTree.tostring(schema.getroot(),encoding = "utf-8"),b"<database><caches /></database>") db.addCache("cache1") schema = NOSql.Database._generateschema(db) self.assertEqual(ElementTree.tostring(schema.getroot(),encoding = "utf-8"),b'<database><caches><cache type="keyvaluecache">cache1</cache></caches></database>')
def test_serialize_deserialize(self): """ Tests that the SqliteCache can be serialized and then deserialized correctly """ cache = self.db.addCache("db",cachetype = "sqlite3") cache.execute("""CREATE TABLE testtable(name);""") cache.execute("""INSERT INTO testtable (name) VALUES ("a"),("b");""") ## db.save => cache.serialize => cache.commit(); cache.close() self.db.save() db = NOSql.Database(DBPATH) cache2 = db.cache("db") self.assertIsInstance(cache2,NOSql.SqliteCache)
def test_serialize_deserialize(self): """ Tests that a basic KeyValueCache can be serialized and reloaded """ ## Original Cache cache1 = self.db.addCache("Names") ## Miscellaneous, Json-Serializable values for value in ["a",1,1.2,dict(a=1),[1,2]]: cache1.insert(value) self.db.save() db = NOSql.Database(DBPATH) cache2 = db.cache("Names") for attr in ["_counter","_container"]: with self.subTest(attr = attr, cache1 = cache1, cache2 = cache2): self.assertTrue(hasattr(cache1,attr)) self.assertTrue(hasattr(cache2,attr)) self.assertEqual(getattr(cache1,attr),getattr(cache2,attr))
def setUp(self): self.db = NOSql.Database(":memory:")
def setUp(self): if DBPATH.exists(): DBPATH.unlink() self.db = NOSql.Database(DBPATH) return super().setUp()
def setUp(self): self.db = NOSql.Database(":memory:") self.cache = self.db.addCache("sqlite","sqlite3") return super().setUp()