def test_compiled_code(spawnu, TIMEOUT, version, target): root = os.path.abspath(os.path.dirname(__file__)) output = 'output_{}.py'.format(version) proc = spawnu('py_backwards/python-{}'.format(version), 'FROM python:{}'.format(version), 'bash') try: result = compile_files(os.path.join(root, 'input.py'), os.path.join(root, output), target) if result.dependencies: proc.sendline('pip install {}'.format(' '.join( result.dependencies))) assert proc.expect_exact([TIMEOUT, 'Successfully installed']) proc.sendline('python{} src/tests/functional/{}'.format( version, output)) # Output of `input.py` and converted: for line in expected_output.split('\n'): if target > (2, 7): line = line.replace("u'", "'") print(line) assert proc.expect_exact([TIMEOUT, line], timeout=10) finally: try: os.remove(os.path.join(root, output)) except Exception as e: print("Can't delete compiled", e) proc.close(force=True)
def test_compile(self, input_output): output = StringIO() @contextmanager def output_f(*_): yield output input_output.input.as_posix.return_value = 'test.py' input_output.input.open.return_value = StringIO("print('hello world')") input_output.output.open = output_f result = compiler.compile_files('test.py', 'lib/test.py', (2, 7)) assert result.files == 1 assert result.target == (2, 7) assert result.time assert "print('hello world')" in output.getvalue()
in_dir = path.join(basedir, 'pyppeteer') out_dir = path.join(basedir, '.pyppeteer') packages = ['pyppeteer'] package_dir = {'pyppeteer': '.pyppeteer'} if not path.exists(out_dir): if path.exists(in_dir): try: from py_backwards.compiler import compile_files except ImportError: import subprocess subprocess.run( [sys.executable, '-m', 'pip', 'install', 'py-backwards'] ) from py_backwards.compiler import compile_files target = (sys.version_info[0], sys.version_info[1]) compile_files(in_dir, out_dir, target) else: raise Exception('Could not find package directory') else: packages = ['pyppeteer'] package_dir = {'pyppeteer': 'pyppeteer'} readme_file = path.join(basedir, 'README.md') with open(readme_file) as f: src = f.read() try: from m2r import M2R readme = M2R()(src) except ImportError: readme = src
if (3, 6) > sys.version_info >= (3, 5): in_dir = path.join(basedir, 'pyppeteer') out_dir = path.join(basedir, '.pyppeteer') packages = ['pyppeteer'] package_dir = {'pyppeteer': '.pyppeteer'} if not path.exists(out_dir): if path.exists(in_dir): try: from py_backwards.compiler import compile_files except ImportError: import subprocess subprocess.run( [sys.executable, '-m', 'pip', 'install', 'py-backwards']) from py_backwards.compiler import compile_files target = (sys.version_info[0], sys.version_info[1]) compile_files(in_dir, out_dir, target) else: raise Exception('Could not find package directory') else: packages = ['pyppeteer'] package_dir = {'pyppeteer': 'pyppeteer'} readme_file = path.join(basedir, 'README.md') with open(readme_file) as f: src = f.read() try: from m2r import M2R readme = M2R()(src) except ImportError: readme = src
def test_syntax_error(self, input_output): input_output.input.as_posix.return_value = 'test.py' input_output.input.open.return_value = StringIO('a b c d') with pytest.raises(CompilationError): compiler.compile_files('test.py', 'lib/test.py', (2, 7))
import sys basedir = path.dirname(path.abspath(__file__)) extra_args = {} if (3, 6) > sys.version_info >= (3, 5): try: from py_backwards.compiler import compile_files except ImportError: import subprocess subprocess.run( [sys.executable, '-m', 'pip', 'install', 'py-backwards']) from py_backwards.compiler import compile_files in_dir = path.join(basedir, 'pyppeteer') out_dir = path.join(basedir, '.pyppeteer') compile_files(in_dir, out_dir, (3, 5)) packages = ['pyppeteer'] package_dir = {'pyppeteer': '.pyppeteer'} else: packages = ['pyppeteer'] package_dir = {'pyppeteer': 'pyppeteer'} readme_file = path.join(basedir, 'README.md') with open(readme_file) as f: src = f.read() try: from m2r import M2R readme = M2R()(src) except ImportError: readme = src