def test_exclude_plain(self): """Test excluding namespaces without wildcards""" namespace_config = NamespaceConfig(ex_namespace_set=["ex.clude"]) self.assertEqual(namespace_config.unmap_namespace("db.col"), "db.col") self.assertEqual(namespace_config.unmap_namespace("ex.clude"), "ex.clude") self.assertEqual(namespace_config.map_namespace("db.col"), "db.col") self.assertIsNone(namespace_config.map_namespace("ex.clude"))
def test_rename_validation(self): """Test namespace renaming validation.""" # Multiple collections cannot be merged into the same target namespace with self.assertRaises(errors.InvalidConfiguration): NamespaceConfig(namespace_options={ "db1.col1": "newdb.newcol", "db2.col1": "newdb.newcol"}) # Multiple collections cannot be merged into the same target namespace with self.assertRaises(errors.InvalidConfiguration): NamespaceConfig(namespace_options={ "db*.col1": "newdb.newcol*", "db*.col2": "newdb.newcol*"}) # Multiple collections cannot be merged into the same target namespace namespace_config = NamespaceConfig(namespace_options={ "*.coll": "*.new_coll", "db.*": "new_db.*"}) namespace_config.map_namespace("new_db.coll") with self.assertRaises(errors.InvalidConfiguration): # "db.new_coll" should map to "new_db.new_coll" but there is # already a mapping from "new_db.coll" to "new_db.new_coll". namespace_config.map_namespace("db.new_coll") # For the sake of map_db, wildcards cannot be moved from database name # to collection name. with self.assertRaises(errors.InvalidConfiguration): NamespaceConfig(namespace_options={"db*.col": "new_db.col_*"}) # For the sake of map_db, wildcards cannot be moved from collection # name to database name. with self.assertRaises(errors.InvalidConfiguration): NamespaceConfig(namespace_options={"db.*": "new_db_*.col"})
def test_rename_validation(self): """Test namespace renaming validation.""" # Multiple collections cannot be merged into the same target namespace with self.assertRaises(errors.InvalidConfiguration): NamespaceConfig(namespace_options={ "db1.col1": "newdb.newcol", "db2.col1": "newdb.newcol"}) # Multiple collections cannot be merged into the same target namespace with self.assertRaises(errors.InvalidConfiguration): NamespaceConfig(namespace_options={ "db*.col1": "newdb.newcol*", "db*.col2": "newdb.newcol*"}) # Multiple collections cannot be merged into the same target namespace namespace_config = NamespaceConfig(namespace_options={ "*.coll": "*.new_coll", "db.*": "new_db.*"}) namespace_config.map_namespace("new_db.coll") with self.assertRaises(errors.InvalidConfiguration): # "db.new_coll" should map to "new_db.new_coll" but there is # already a mapping from "new_db.coll" to "new_db.new_coll". namespace_config.map_namespace("db.new_coll") # For the sake of map_db, wildcards cannot be moved from database name # to collection name. with self.assertRaises(errors.InvalidConfiguration): NamespaceConfig(namespace_options={"db*.col": "new_db.col_*"}) # For the sake of map_db, wildcards cannot be moved from collection # name to database name. with self.assertRaises(errors.InvalidConfiguration): NamespaceConfig(namespace_options={"db.*": "new_db_*.col"})
def test_include_wildcard_metacharacters(self): """Test namespaces with metacharacters are matched.""" namespace_config = NamespaceConfig(namespace_set=["db&_*.$_^_#_!_[_]_"]) self.assertEqual( namespace_config.map_namespace("db&_foo.$_^_#_!_[_]_"), "db&_foo.$_^_#_!_[_]_", ) self.assertIsNone(namespace_config.map_namespace("db&.foo"))
def test_include_plain(self): """Test including namespaces without wildcards""" namespace_config = NamespaceConfig(namespace_set=["db1.col1", "db1.col2"]) self.assertEqual(namespace_config.unmap_namespace("db1.col1"), "db1.col1") self.assertEqual(namespace_config.unmap_namespace("db1.col2"), "db1.col2") self.assertIsNone(namespace_config.unmap_namespace("not.included")) self.assertEqual(namespace_config.map_db("db1"), ["db1"]) self.assertEqual(namespace_config.map_db("not_included"), []) self.assertEqual(namespace_config.map_namespace("db1.col1"), "db1.col1") self.assertEqual(namespace_config.map_namespace("db1.col2"), "db1.col2") self.assertIsNone(namespace_config.map_namespace("db1.col4"))
def test_default(self): """Test that by default, all namespaces are kept without renaming""" namespace_config = NamespaceConfig() self.assertEqual(namespace_config.unmap_namespace("db1.col1"), "db1.col1") self.assertEqual(namespace_config.map_db("db1"), ["db1"]) self.assertEqual(namespace_config.map_namespace("db1.col1"), "db1.col1")
def test_default(self): """Test that by default, all namespaces are kept without renaming""" namespace_config = NamespaceConfig() self.assertEqual(namespace_config.unmap_namespace("db1.col1"), "db1.col1") self.assertEqual(namespace_config.map_db("db1"), ["db1"]) self.assertEqual(namespace_config.map_namespace("db1.col1"), "db1.col1")
def test_include_wildcard_periods(self): """Test the '.' in the namespace only matches '.'""" namespace_config = NamespaceConfig(namespace_set=["db.*"]) self.assertIsNone(namespace_config.map_namespace("dbxcol")) self.assertEqual(namespace_config.map_namespace("db.col"), "db.col")
def test_include_wildcard_no_period_in_database(self): """Test that a database wildcard cannot match a period.""" namespace_config = NamespaceConfig(namespace_set=["db*.col"]) self.assertIsNone(namespace_config.map_namespace("db.bar.col")) self.assertEqual(namespace_config.map_namespace("dbfoo.col"), "dbfoo.col")
def test_include_wildcard_multiple_periods(self): """Test matching a namespace with multiple '.' characters.""" namespace_config = NamespaceConfig(namespace_set=["db.col.*"]) self.assertIsNone(namespace_config.map_namespace("db.col")) self.assertEqual(namespace_config.map_namespace("db.col."), "db.col.")