示例#1
0
 def test_demangle_base(self):
     """
     Demangling a mangle parent directly should currently return an empty string.
     """
     a = PackageMangler()
     mangled = a.mangle("foo")
     mangle_parent = mangled.partition(".")[0]
     self.assertEqual("", demangle(mangle_parent))
示例#2
0
    def test_is_mangled(self):
        a = PackageMangler()
        b = PackageMangler()
        self.assertTrue(is_mangled(a.mangle("foo.bar")))
        self.assertTrue(is_mangled(b.mangle("foo.bar")))

        self.assertFalse(is_mangled("foo.bar"))
        self.assertFalse(is_mangled(demangle(a.mangle("foo.bar"))))
示例#3
0
 def test_package_mangler(self):
     a = PackageMangler()
     b = PackageMangler()
     a_mangled = a.mangle("foo.bar")
     # Since `a` mangled this string, it should demangle properly.
     self.assertEqual(a.demangle(a_mangled), "foo.bar")
     # Since `b` did not mangle this string, demangling should leave it alone.
     self.assertEqual(b.demangle(a_mangled), a_mangled)
示例#4
0
 def test_unique_manglers(self):
     """
     Each mangler instance should generate a unique mangled name for a given input.
     """
     a = PackageMangler()
     b = PackageMangler()
     self.assertNotEqual(a.mangle("foo.bar"), b.mangle("foo.bar"))
示例#5
0
    def test_demangler_multiple_manglers(self):
        """
        PackageDemangler should be able to demangle name generated by any PackageMangler.
        """
        a = PackageMangler()
        b = PackageMangler()

        self.assertEqual("foo.bar", demangle(a.mangle("foo.bar")))
        self.assertEqual("bar.foo", demangle(b.mangle("bar.foo")))
示例#6
0
 def test_mangle_prefix(self):
     a = PackageMangler()
     mangled = a.mangle("foo.bar")
     mangle_prefix = get_mangle_prefix(mangled)
     self.assertEqual(mangle_prefix + "." + "foo.bar", mangled)
示例#7
0
 def test_mangle_empty_errors(self):
     a = PackageMangler()
     with self.assertRaises(AssertionError):
         a.mangle("")
示例#8
0
 def test_roundtrip_mangling(self):
     a = PackageMangler()
     self.assertEqual("foo", demangle(a.mangle("foo")))
示例#9
0
 def test_mangler_is_consistent(self):
     """
     Mangling the same name twice should produce the same result.
     """
     a = PackageMangler()
     self.assertEqual(a.mangle("abc.def"), a.mangle("abc.def"))