(original) (raw)
"""Tests for distutils2.util.generate_setup_py""" import os import subprocess from distutils2.tests import support from distutils2.tests import unittest from distutils2.util import generate_setup_py class GenerateSetupPyTestCase(support.TempdirManager, support.LoggingCatcher, support.EnvironRestorer, unittest.TestCase): restore_environ = ['HOME'] def setUp(self): super(GenerateSetupPyTestCase, self).setUp() self.tmp_dir = self.mkdtemp() os.environ['HOME'] = self.tmp_dir self.old_path = os.getcwd() os.chdir(self.tmp_dir) def tearDown(self): os.chdir(self.old_path) super(GenerateSetupPyTestCase, self).tearDown() def test_generated_setup_created(self): self.assertFalse(os.path.exists('setup.py')) generate_setup_py() self.assertTrue(os.path.exists('setup.py')) def test_wo_setupcfg(self): """setup.py without setup.cfg should complain""" generate_setup_py() p = subprocess.Popen(['python', 'setup.py'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) self.assertEqual(p.wait(), 1) self.assertEqual(p.stdout.read(), '') self.assertIn("setup.cfg' does not exist", p.stderr.read()) def test_noargs_usage(self): """setup.py without args should give exit code and usage message""" generate_setup_py() self.write_file((self.tmp_dir, 'setup.cfg'), '') p = subprocess.Popen(['python', 'setup.py'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) self.assertEqual(p.wait(), 1) self.assertEqual(p.stdout.read(), '') self.assertIn("no commands supplied", p.stderr.read()) def test_suite(): return unittest.makeSuite(GenerateSetupPyTestCase) if __name__ == "__main__": unittest.main(defaultTest="test_suite")