def test_rw_identical(self): notes = get_table(self.db_read, "notes") cards = get_table(self.db_read, "cards") revlog = get_table(self.db_read, "revs") for mode in ["update", "replace", "append"]: with self.subTest(mode=mode): self._reset() set_table(self.db_write, notes, "notes", mode) set_table(self.db_write, cards, "cards", mode) set_table(self.db_write, revlog, "revs", mode) self._check_db_equal()
def test_update_append_does_not_delete(self): notes = get_table(self.db_read, "notes") cards = get_table(self.db_read, "cards") revs = get_table(self.db_read, "revs") notes.drop(notes.index) cards.drop(cards.index) revs.drop(revs.index) for mode in ["update", "append"]: with self.subTest(mode=mode): self._reset() set_table(self.db_write, notes, "notes", mode) set_table(self.db_write, cards, "cards", mode) set_table(self.db_write, revs, "revs", mode) self._check_db_equal()
def test_rids_revs(self): self.assertListEqual(list(self.revs.index), list(self.revs.rid)) self.assertListEqual( list(self.revs.index), list(raw.get_table(self.db, "revs")["id"].unique()), ) self.assertEqual(len(self.revs.rid.unique()), len(self.revs.rid))
def test_cids_cards(self): self.assertListEqual(list(self.cards.index), list(self.cards.cid)) self.assertListEqual( list(self.cards.index), list(raw.get_table(self.db, "cards")["id"].unique()), ) self.assertEqual(len(self.cards.cid.unique()), len(self.cards.cid))
def test_nids_notes(self): self.assertListEqual(list(self.notes.index), list(self.notes.nid)) self.assertListEqual( list(self.notes.index), list(raw.get_table(self.db, "notes")["id"].unique()), ) self.assertEqual(len(self.notes.nid.unique()), len(self.notes.nid))
def test_convert_raw_load_raw(self): for table in ["notes", "revs", "cards"]: with self.subTest(table=table): adf = self.ntable(table).raw() df = raw.get_table(self.db, table) if table == "notes": df["tags"] = df["tags"].str.strip() self.assertTrue(adf.equals(df))
def test_update(self): notes2 = get_table(self.db_read, "notes") notes = get_table(self.db_read, "notes") for mode in ["update", "replace", "append"]: with self.subTest(mode=mode): self._reset() notes2.loc[notes2["id"] == 1555579337683, "tags"] = "definitelynew!" set_table(self.db_write, notes2, "notes", mode) if mode == "append": self._check_db_equal() else: notes2r = get_table(self.db_write, "notes") chtag = notes2r.loc[notes2r["id"] == 1555579337683, "tags"] self.assertListEqual(list(chtag.values.tolist()), ["definitelynew!"]) unchanged = notes.loc[notes["id"] != 1555579337683, :] unchanged2 = notes2r.loc[notes2["id"] != 1555579337683, :] self.assertListEqual( list(unchanged.values.tolist()), list(unchanged2.values.tolist()), )
def _check_db_equal(self): notes = get_table(self.db_read, "notes") cards = get_table(self.db_read, "cards") revlog = get_table(self.db_read, "revs") notes2 = get_table(self.db_write, "notes") cards2 = get_table(self.db_write, "cards") revlog2 = get_table(self.db_write, "revs") # noinspection PyUnresolvedReferences self.assertListEqual(notes.values.tolist(), notes2.values.tolist()) # noinspection PyUnresolvedReferences self.assertListEqual(cards.values.tolist(), cards2.values.tolist()) # noinspection PyUnresolvedReferences self.assertListEqual(revlog.values.tolist(), revlog2.values.tolist())
def test_replace_deletes(self): notes = get_table(self.db_read, "notes") cards = get_table(self.db_read, "cards") revs = get_table(self.db_read, "revs") notes = notes.drop(notes.index) cards = cards.drop(cards.index) revs = revs.drop(revs.index) self._reset() set_table(self.db_write, notes, "notes", "replace") set_table(self.db_write, cards, "cards", "replace") set_table(self.db_write, revs, "revs", "replace") notes = get_table(self.db_write, "notes") cards = get_table(self.db_write, "cards") revs = get_table(self.db_write, "revs") self.assertEqual(len(notes), 0) self.assertEqual(len(revs), 0) self.assertEqual(len(cards), 0)