def test_cache(self): database = sqlite3.connect(":memory:") config = api.ProfileConfig(database) config["alice"] = {"abc": 123} with patch.object(config, 'cursor') as cursor: self.assertEqual({"abc": 123}, config["alice"]) cursor.assert_not_called()
def test_replacing_profile(self): database = sqlite3.connect(":memory:") config = api.ProfileConfig(database) config["alice"] = {"abc": 123} config["alice"] = {"def": 456} self.assertEqual({"alice"}, set(config)) self.assertEqual({"def": 456}, config["alice"])
def test_init(self): database = sqlite3.connect(":memory:") config = api.ProfileConfig(database) with config.cursor() as cursor: # The profiles table has been created. self.assertEqual( cursor.execute("SELECT COUNT(*) FROM sqlite_master" " WHERE type = 'table'" " AND name = 'profiles'").fetchone(), (1, ))
def test_removing_profile(self): database = sqlite3.connect(":memory:") config = api.ProfileConfig(database) config["alice"] = {"abc": 123} del config["alice"] self.assertEqual(set(), set(config))
def test_getting_non_existent_profile(self): database = sqlite3.connect(":memory:") config = api.ProfileConfig(database) self.assertRaises(KeyError, lambda: config["alice"])
def test_getting_profile(self): database = sqlite3.connect(":memory:") config = api.ProfileConfig(database) config["alice"] = {"abc": 123} self.assertEqual({"abc": 123}, config["alice"])
def test_profiles_pristine(self): # A pristine configuration has no profiles. database = sqlite3.connect(":memory:") config = api.ProfileConfig(database) self.assertSetEqual(set(), set(config))