def test_codegen_clean_return_types(self) -> None: """ Verifies that codegen of return types would not result in a changed file. If this test fails, please run 'tox -e codegen' to generate new files. """ new_code = clean_generated_code("\n".join(type_codegen.generated_code)) new_file = os.path.join(os.path.dirname(os.path.abspath(__file__)), "type_codegen.py.deleteme") with open(new_file, "w") as fp: fp.write(new_code) try: format_file(new_file) except Exception: # We failed to format, but this is probably due to invalid code that # black doesn't like. This test will still fail and report to run codegen. pass with open(new_file, "r") as fp: new_code = fp.read() os.remove(new_file) with open( os.path.join( os.path.dirname(os.path.abspath(__file__)), "../../matchers/_return_types.py", ), "r", ) as fp: old_code = fp.read() # Now that we've done simple codegen, verify that it matches. self.assertTrue(old_code == new_code, "libcst.matchers._return_types needs new codegen!")
def test_codegen_clean_visitor_functions(self) -> None: """ Verifies that codegen of visitor functions would not result in a changed file. If this test fails, please run 'python -m libcst.codegen.generate all' to generate new files. """ new_code = clean_generated_code("\n".join( visitor_codegen.generated_code)) new_file = os.path.join(os.path.dirname(os.path.abspath(__file__)), "visitor_codegen.deleteme.py") with open(new_file, "w") as fp: fp.write(new_code) try: format_file(new_file) except Exception: # We failed to format, but this is probably due to invalid code that # black doesn't like. This test will still fail and report to run codegen. pass with open(new_file, "r") as fp: new_code = fp.read() os.remove(new_file) with open( os.path.join(os.path.dirname(os.path.abspath(__file__)), "../../_typed_visitor.py"), "r", ) as fp: old_code = fp.read() # Now that we've done simple codegen, verify that it matches. self.assert_code_matches(old_code, new_code, "libcst._typed_visitor")