Ejemplo n.º 1
0
 def test_process_file_not_Found(self):
     if current_version() >= 3.0:
         exc = FileNotFoundError
     else:
         exc = Exception
     with self.assertRaises(exc):
         process_individual(("nonexistent", self.config))
Ejemplo n.º 2
0
 def test_process_runtests_py(self):
     (path, mins, text, bps) = process_individual(
         (sys.argv[0], self.config))
     self.assertEqual(basename(path), "runtests.py")
     self.assertEqual(mins, [(2, 7), (3, 0)])
     self.assertEmpty(text)
     self.assertEmpty(bps)
Ejemplo n.º 3
0
 def test_process_file_using_backport(self):
   fp = ScopedTemporaryFile()
   fp.writeln(b"import typing")
   fp.close()
   proc_res = process_individual((fp.path(), self.config))
   self.assertEmpty(proc_res.text)
   self.assertEqualItems(["typing"], proc_res.bps)
Ejemplo n.º 4
0
 def test_process_file_using_backport(self):
     fp = NamedTemporaryFile(suffix=".py", delete=False)
     fp.write(b"import typing\n")
     fp.close()
     (path, mins, text, bps) = process_individual((fp.name, self.config))
     self.assertEmpty(text)
     self.assertEqualItems(["typing"], bps)
     os.remove(fp.name)
Ejemplo n.º 5
0
 def test_process_value_error(self):
   # (Py3) ValueError: source code string cannot contain null bytes
   # (Py2) TypeError: compile() expected string without null bytes
   fp = ScopedTemporaryFile()
   fp.write(b'\0')
   fp.close()
   proc_res = process_individual((fp.path(), self.config))
   self.assertEqual(proc_res, None)
Ejemplo n.º 6
0
 def test_process_syntax_error(self):
   # Syntax error triggers minimum versions [0, 0].
   fp = ScopedTemporaryFile()
   fp.write(b'(')  # SyntaxError: unexpected EOF while parsing
   fp.close()
   proc_res = process_individual((fp.path(), self.config))
   self.assertEqual(proc_res.mins, [(0, 0), (0, 0)])
   self.assertEmpty(proc_res.text)
   self.assertEmpty(proc_res.bps)
Ejemplo n.º 7
0
 def test_process_invalid_versions(self):
     fp = NamedTemporaryFile(suffix=".py", delete=False)
     fp.write(b"long(42)\n")  # long is a v2 feature: 2.0 !3
     fp.write(b"breakpoint()\n")  # breakpoint(): !2, 3.7
     fp.close()
     (path, mins, text) = process_individual((fp.name, self.config))
     self.assertEqual(mins, None)
     self.assertTrue(text.startswith("Versions could not be combined"))
     os.remove(fp.name)
Ejemplo n.º 8
0
 def test_process_syntax_error(self):
     # Syntax error triggers minimum versions [0, 0].
     fp = NamedTemporaryFile(suffix=".py", delete=False)
     fp.write(b"(")  # SyntaxError: unexpected EOF while parsing
     fp.close()
     (path, mins, text) = process_individual((fp.name, self.config))
     self.assertEqual(mins, [0, 0])
     self.assertEmpty(text)
     os.remove(fp.name)
Ejemplo n.º 9
0
  def test_process_invalid_versions(self):
    with ScopedTemporaryFile() as fp:
      fp.write(b"""long(42)
breakpoint()
""")
      fp.close()
      proc_res = process_individual((fp.path(), self.config))
      self.assertEqual(proc_res.mins, None)
      msg = "'long' member (requires 2.0, !3) vs. 'breakpoint' member (requires !2, 3.7)"
      self.assertEqual(proc_res.text, msg)
      self.assertEmpty(proc_res.bps)

    with ScopedTemporaryFile() as fp:
      fp.write(b"""try:
  import socketserver
except ImportError:
  import SocketServer
""")
      fp.close()
      proc_res = process_individual((fp.path(), self.config))
      self.assertEqual(proc_res.mins, None)
      msg = "'socketserver' module (requires !2, 3.0) vs. 'SocketServer' module (requires 2.0, !3)"
      self.assertEqual(proc_res.text, msg)
      self.assertEmpty(proc_res.bps)

    with ScopedTemporaryFile() as fp:
      fp.write(b"""import time
time.strftime("%u", gmtime())

from urllib import urlopen
urlopen(context=None)
""")
      fp.close()
      proc_res = process_individual((fp.path(), self.config))
      self.assertEqual(proc_res.mins, None)
      msg =\
        "strftime directive 'u' (requires !2, 3.6) vs. 'urllib.urlopen(context)' (requires 2.7, !3)"
      self.assertEqual(proc_res.text, msg)
      self.assertEmpty(proc_res.bps)
Ejemplo n.º 10
0
 def test_process_runtests_py(self):
   proc_res = process_individual((sys.argv[0], self.config))
   self.assertEqual(basename(proc_res.path), "runtests.py")
   self.assertEqual(proc_res.mins, [(2, 7), (3, 2)])
   self.assertEmpty(proc_res.text)
   self.assertEmpty(proc_res.bps)
Ejemplo n.º 11
0
 def test_process_runtests_py(self):
     (path, mins, text) = process_individual((sys.argv[0], self.config))
     self.assertEqual(basename(path), "runtests.py")
     self.assertEqual(mins, [2.7, 3.0])
     self.assertEmpty(text)