codekingpro/portable-devtools
114k
1#! /usr/bin/env python
2
3import sys
4import os
5from unittest import TestCase as NonLeakingTestCase
6
7import greenlet
8
9# No reason to run this multiple times under leakchecks,
10# it doesn't do anything.
11class VersionTests(NonLeakingTestCase):
12 def test_version(self):
13 def find_dominating_file(name):
14 if os.path.exists(name):
15 return name
16
17 tried = []
18 here = os.path.abspath(os.path.dirname(__file__))
19 for i in range(10):
20 up = ['..'] * i
21 path = [here] + up + [name]
22 fname = os.path.join(*path)
23 fname = os.path.abspath(fname)
24 tried.append(fname)
25 if os.path.exists(fname):
26 return fname
27 raise AssertionError("Could not find file " + name + "; checked " + str(tried))
28
29 try:
30 setup_py = find_dominating_file('setup.py')
31 except AssertionError as e:
32 self.skipTest("Unable to find setup.py; must be out of tree. " + str(e))
33
34
35 invoke_setup = "%s %s --version" % (sys.executable, setup_py)
36 with os.popen(invoke_setup) as f:
37 sversion = f.read().strip()
38
39 if not sversion or not sversion[0].isdigit():
40 self.skipTest(
41 "setup.py --version did not return a version string "
42 "(likely a setuptools compatibility issue): "
43 + repr(sversion[:80])
44 )
45
46 self.assertEqual(sversion, greenlet.__version__)
47 