def test_split_csymbol(self): cmd = [ sys.executable, '-c', 'import sys; sys.stdout.write("test_" + sys.stdin.read())'] namespace = ast.Namespace('Test', '1.0') xformer = Transformer(namespace, symbol_filter_cmd=cmd) self.assertEqual( xformer.split_csymbol('foo_bar_quux')[1], "foo_bar_quux")
def test_record_deprecated_from_section(self): namespace = ast.Namespace('Test', '1.0') load_namespace_from_source_string( namespace, """ /** SECTION:teststruct * foo * Deprecated: 1.2: something */ typedef struct _TestStruct TestStruct; """) node = namespace.get('Struct') self.assertEqual(node.doc, "foo") self.assertEqual(node.deprecated, "1.2") self.assertEqual(node.deprecated_doc, "something")
def test_underscore_t_sed_filter(self): cmd = r"sed " \ r"-e 's/^test_t$/TestContext/' " \ r"-e 's/\(.*\)_t$/\1/' " \ r"-e 's/^test_/Test_/' " \ r"-e 's/_\([a-z]\)/" + '\\u' + r"\1/g'" namespace = ast.Namespace('Test', '1.0') xformer = Transformer(namespace, identifier_filter_cmd=cmd) self.assertEqual(xformer.strip_identifier('test_t'), 'Context') self.assertEqual(xformer.strip_identifier('test_foo_t'), 'Foo') self.assertEqual(xformer.strip_identifier('test_foot'), 'Foot') self.assertEqual(xformer.strip_identifier('test_foo_bart'), 'FooBart') self.assertEqual(xformer.strip_identifier('test_foo_tart'), 'FooTart')
def test_underscore_t_identifier_filter(self): cmd = [sys.executable, '-c', textwrap.dedent(""" import sys, re for line in sys.stdin: line = re.sub(r"^test_t$", "TestContext", line) line = re.sub(r"_t$", "", line) line = re.sub(r"^test_", "Test_", line) line = re.sub(r"_([a-z])", lambda m: m.group(1).title(), line) sys.stdout.write(line)""")] namespace = ast.Namespace('Test', '1.0') xformer = Transformer(namespace, identifier_filter_cmd=cmd) self.assertEqual(xformer.strip_identifier('test_t'), 'Context') self.assertEqual(xformer.strip_identifier('test_foo_t'), 'Foo') self.assertEqual(xformer.strip_identifier('test_foot'), 'Foot') self.assertEqual(xformer.strip_identifier('test_foo_bart'), 'FooBart') self.assertEqual(xformer.strip_identifier('test_foo_tart'), 'FooTart')
def setUp(self): # Hack to set logging singleton self.namespace = ast.Namespace('Test', '1.0') logger = MessageLogger.get(namespace=self.namespace) logger.enable_warnings((WARNING, ERROR, FATAL))
def test_invalid_argument(self): cmd = r'sed --not-a-valid-argument' namespace = ast.Namespace('Test', '1.0') xformer = Transformer(namespace, identifier_filter_cmd=cmd) self.assertRaises(ValueError, xformer.strip_identifier, 'test_t')
def test_invalid_command(self): cmd = r'this-is-not-a-real-command' namespace = ast.Namespace('Test', '1.0') xformer = Transformer(namespace, identifier_filter_cmd=cmd) self.assertRaises(ValueError, xformer.strip_identifier, 'test_t')