Exemplo n.º 1
0
 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"})
Exemplo n.º 3
0
    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"})
Exemplo n.º 4
0
 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"))
Exemplo n.º 5
0
 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")
Exemplo n.º 7
0
 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")
Exemplo n.º 8
0
 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")
Exemplo n.º 9
0
 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")
Exemplo n.º 10
0
 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.")