Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
    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()
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
 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))
Ejemplo n.º 6
0
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