def test_replacing_configuration_option(self): database = sqlite3.connect(":memory:") config = ConfigurationDatabase(database, mutable=True) 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 = ConfigurationDatabase(database) with config.cursor() as cursor: # The "configuration" table has been created. self.assertEqual( cursor.execute("SELECT COUNT(*) FROM sqlite_master" " WHERE type = 'table'" " AND name = 'configuration'").fetchone(), (1, ))
def test_mutable(self): database = sqlite3.connect(":memory:") config = ConfigurationDatabase(database, mutable=True) config["alice"] = 1234 del config["alice"]
def test_immutable(self): database = sqlite3.connect(":memory:") config = ConfigurationDatabase(database, mutable=False) self.assertRaises(ConfigurationImmutable, setitem, config, "alice", 1) self.assertRaises(ConfigurationImmutable, delitem, config, "alice")
def test_as_string(self): database = sqlite3.connect(":memory:") config = ConfigurationDatabase(database) self.assertThat(str(config), Equals("ConfigurationDatabase(main=:memory:)"))
def test_removing_configuration_option(self): database = sqlite3.connect(":memory:") config = ConfigurationDatabase(database, mutable=True) config["alice"] = {"abc": 123} del config["alice"] self.assertEqual(set(), set(config))
def test_getting_non_existent_configuration_option(self): database = sqlite3.connect(":memory:") config = ConfigurationDatabase(database) self.assertRaises(KeyError, lambda: config["alice"])
def test_getting_configuration_option(self): database = sqlite3.connect(":memory:") config = ConfigurationDatabase(database, mutable=True) config["alice"] = {"abc": 123} self.assertEqual({"abc": 123}, config["alice"])
def test_configuration_pristine(self): # A pristine configuration has no entries. database = sqlite3.connect(":memory:") config = ConfigurationDatabase(database) self.assertSetEqual(set(), set(config))
def make_database_store(self): database = sqlite3.connect(":memory:") self.addCleanup(database.close) return ConfigurationDatabase(database, mutable=True)