import subprocess
import sys
import tempfile
from textwrap import dedent
from bpython import args
from bpython.test import FixLanguageTestCase as TestCase
try:
import unittest2 as unittest
except ImportError:
import unittest
try:
from nose.plugins.attrib import attr
except ImportError:
def attr(*args, **kwargs):
def identity(func):
return func
return identity
@attr(speed='slow')
class TestExecArgs(unittest.TestCase):
def test_exec_dunder_file(self):
with tempfile.NamedTemporaryFile(mode="w") as f:
f.write(dedent("""\
import sys
sys.stderr.write(__file__)
sys.stderr.flush()"""))
f.flush()
p = subprocess.Popen(
[sys.executable, "-m", "bpython.curtsies", f.name],
stderr=subprocess.PIPE,
universal_newlines=True)
(_, stderr) = p.communicate()
self.assertEquals(stderr.strip(), f.name)
class TestParse(TestCase):
def test_version(self):
with self.assertRaises(SystemExit):
args.parse(['--version'])