def test10_collectSettings_settings_in_environment_get_recovered(self):

        result_a = vfxtest.collectSettings([
            '--target', './subfolder', '--failfast', 'False', '--cfg',
            './other.cfg', '--limit', '13', 'foo', 'bar', 'baz'
        ])

        self.assertEqual(result_a['target'],
                         '{}{}{}'.format(os.getcwd(), os.sep, 'subfolder'))
        self.assertEqual(result_a['failfast'], False)
        self.assertEqual(result_a['cfg'],
                         '{}{}{}'.format(os.getcwd(), os.sep, 'other.cfg'))
        self.assertEqual(result_a['limit'], 13)
        self.assertEqual(result_a['filter_tokens'], ['foo', 'bar', 'baz'])

        self.assertEqual(result_a['subprocess'], False)

        serialized = json.dumps(result_a)
        os.environ['vfxtest_settings'] = serialized
        result_b = vfxtest.collectSettings()
        os.environ.pop('vfxtest_settings')

        self.assertEqual(result_b['subprocess'], True)

        result_a['subprocess'] = None
        result_b['subprocess'] = None
        self.assertEqual(result_a, result_b)
    def test05_collectSettings_invalid_boolean_string_raises_SystemExit(self):

        true_boolean_strings = ['true', 'True', 'yes', 'y', '1']
        for item in true_boolean_strings:
            result = vfxtest.collectSettings(['--failfast', item])
            self.assertEqual(result['failfast'], True)

        false_boolean_strings = ['false', 'False', 'no', 'n', '0']
        for item in false_boolean_strings:
            result = vfxtest.collectSettings(['--failfast', item])
            self.assertEqual(result['failfast'], False)

        with self.assertRaises(SystemExit):
            result = vfxtest.collectSettings(['--failfast', 'Nope'])
    def test04_context_matches_context_in_settings(self):

        foo = vfxtest.TestCase(test_run=True)
        settings = vfxtest.collectSettings()
        settings['context'] = 'awesomeContext'
        foo.settings = settings
        self.assertEqual(foo.context, 'awesomeContext')
    def test09_collectSettings_falls_back_to_cfg_in_parent_folder(self):

        cwd = os.getcwd()
        os.chdir('./python')
        result = vfxtest.collectSettings([])
        self.assertEqual(result['cfg'],
                         '{}{}{}'.format(cwd, os.sep, '.config'))
        os.chdir('..')
    def test07_prepareTestEnvironment_nonexistent_test_output_parent_folder_raises_SystemExit(
            self):

        with self.assertRaises(SystemExit):
            settings = vfxtest.collectSettings(
                ['--cfg', './test_output-non-existent-parent-folder.cfg'])
            settings['test_no_pythonpath'] = True
            vfxtest.prepareTestEnvironment(settings)
    def test05_context_settings_matches_settings(self):

        foo = vfxtest.TestCase(test_run=True)
        settings = vfxtest.collectSettings()
        settings['context'] = 'python3.x'
        foo.settings = settings
        self.assertEqual(foo.context_settings,
                         settings['context_details']['python3.x'])
Beispiel #7
0
    def test07_runNative_with_limit_works_as_expected(self):

        settings = vfxtest.collectSettings(['--limit', '1'])
        vfxtest.prepareTestEnvironment(settings)

        vfxtest.runNative(settings=settings, use_coverage=False)

        self.assertEqual(settings['files_run'], 1)
        self.assertEqual(settings['tests_run'], 3)
        self.assertEqual(settings['errors'], 0)
Beispiel #8
0
    def test08_runNative_in_subfolder_works_as_expected(self):

        settings = vfxtest.collectSettings(['--target', './python'])
        vfxtest.prepareTestEnvironment(settings)

        vfxtest.runNative(settings=settings)

        self.assertEqual(settings['files_run'], 1)
        self.assertEqual(settings['tests_run'], 3)
        self.assertEqual(settings['errors'], 0)
Beispiel #9
0
    def test09_runNative_no_tests_at_all_does_not_try_to_report_coverage(self):

        settings = vfxtest.collectSettings(['--target', './python'])
        settings['filter_tokens'].append('does-not-get-matched')
        vfxtest.prepareTestEnvironment(settings)

        vfxtest.runNative(settings=settings)

        self.assertEqual(settings['files_run'], 0)
        self.assertEqual(settings['tests_run'], 0)
        self.assertEqual(settings['errors'], 0)
    def test06__createTestRootFolder_invalid_test_output_raises_OSError(self):

        invalid_test_output = os.path.abspath('./does/not/exist')
        self.assertFalse(os.path.exists(invalid_test_output))

        runner = vfxtest.TextTestRunner()
        settings = vfxtest.collectSettings()
        settings['output_folder'] = invalid_test_output

        with self.assertRaises(OSError):
            vfxtest._createTestRootFolder(settings=settings, name=['invalid'])
    def test03_collectSettings_returns_default_args(self):

        result = vfxtest.collectSettings()

        self.assertTrue(isinstance(result, dict))
        self.assertEqual(result['target'], os.getcwd())
        self.assertEqual(result['failfast'], True)
        self.assertEqual(result['cfg'],
                         os.sep.join([result['target'], '.config']))
        self.assertEqual(result['limit'], 0)
        self.assertEqual(result['filter_tokens'], [])
        self.assertEqual(result['cwd'], os.getcwd())
    def test04_collectSettings_explicit_values_for_clear_and_failfast_get_respected(
            self):

        result_a = vfxtest.collectSettings([
            '--target', './subfolder', '--failfast', 'False', '--cfg',
            './other.cfg', '--limit', '13', 'foo', 'bar', 'baz'
        ])

        result_b = vfxtest.collectSettings([
            '-t', './subfolder', '-f', 'False', '-c', './other.cfg', '-l',
            '13', 'foo', 'bar', 'baz'
        ])

        self.assertEqual(result_a['target'],
                         '{}{}{}'.format(os.getcwd(), os.sep, 'subfolder'))
        self.assertEqual(result_a['failfast'], False)
        self.assertEqual(result_a['cfg'],
                         '{}{}{}'.format(os.getcwd(), os.sep, 'other.cfg'))
        self.assertEqual(result_a['limit'], 13)
        self.assertEqual(result_a['filter_tokens'], ['foo', 'bar', 'baz'])

        self.assertEqual(result_a, result_b)
Beispiel #13
0
    def test02_runNative_with_filter_tokens_runs_successfully(self):

        settings = vfxtest.collectSettings([
            '--target',
            '.',
            '_01',
        ])
        vfxtest.prepareTestEnvironment(settings)

        vfxtest.runNative(settings=settings, use_coverage=False)
        self.assertEqual(settings['files_run'], 1)
        self.assertEqual(settings['tests_run'], 3)
        self.assertEqual(settings['errors'], 0)
    def test08_prepareTestEnvironment_nonexistent_test_output_folder_gets_created(
            self):

        if os.path.exists('./remove_me'):
            shutil.rmtree('./remove_me')

        settings = vfxtest.collectSettings(
            ['--cfg', './test_output-create-folder.cfg'])
        settings['test_no_pythonpath'] = True
        vfxtest.prepareTestEnvironment(settings, )

        self.assertTrue(os.path.exists('./remove_me'))
        shutil.rmtree('./remove_me')
Beispiel #15
0
    def test10_runNative_with_failfast_stops_on_first_error(self):

        settings = vfxtest.collectSettings(['--failfast', 'true'])
        print(settings['failfast'])
        print(settings['target'])

        vfxtest.prepareTestEnvironment(settings)
        with mock.patch('awesome_module.buzz', side_effect=Exception()):
            vfxtest.runNative(settings=settings, use_coverage=False)

        self.assertEqual(settings['files_run'], 1)
        self.assertEqual(settings['tests_run'], 2)
        self.assertEqual(settings['errors'], 1)
Beispiel #16
0
    def test03_combineCoverages_works_as_expected(self):

        settings = vfxtest.collectSettings([
            '_02',
        ])
        vfxtest.prepareTestEnvironment(settings)

        settings['context'] = 'differentContext'
        vfxtest.runNative(settings=settings)
        self.assertEqual(settings['files_run'], 1)
        self.assertEqual(settings['tests_run'], 3)
        self.assertTrue(
            os.path.exists('{}/.coverage.differentContext'.format(
                settings['output_folder'])))

        settings = vfxtest.collectSettings()
        vfxtest.combineCoverages(settings)

        self.assertFalse(
            os.path.exists('{}/.coverage.differentContext'.format(
                settings['output_folder'])))
        self.assertTrue(
            os.path.exists('{}/.coverage'.format(settings['output_folder'])))
Beispiel #17
0
    def test01_runNative_runs_successfully(self):

        settings = vfxtest.collectSettings()
        vfxtest.prepareTestEnvironment(settings)

        cov_file = os.path.abspath('{}/.coverage.native'.format(
            settings['output_folder']))
        if os.path.exists(cov_file):
            os.remove(cov_file)
        vfxtest.runNative(settings=settings, use_coverage=True)

        self.assertEqual(settings['files_run'], 2)
        self.assertEqual(settings['tests_run'], 6)
        self.assertEqual(settings['errors'], 0)
        self.assertTrue(os.path.exists(cov_file))
    def test14_prepareTestEnvironment_without_python_contexts_still_preps_pythonpath_or_throws_EnvironmentError(
            self):

        if os.path.exists('./no_python_contexts'):
            shutil.rmtree('./no_python_contexts')

        settings = vfxtest.collectSettings(
            ['--cfg', './test_no-python-contexts.cfg'])
        # Python 2.x
        if sys.version.startswith('2.'):
            vfxtest.prepareTestEnvironment(settings)
            proof = './no_python_contexts/_dcc_settings/PYTHONPATH/mock/mock.py'
            self.assertTrue(os.path.exists(proof))

        elif sys.version.startswith('3.'):
            with self.assertRaises(EnvironmentError):
                vfxtest.prepareTestEnvironment(settings)
        else:
            raise EnvironmentError('Python version not tested: {}'.format(
                sys.version))

        shutil.rmtree('./no_python_contexts')
    def test01_collectSettings_help_raises_SystemError(self):

        with self.assertRaises(SystemExit):
            result = vfxtest.collectSettings(['--help'])
    def test06_collectSettings_nonexistent_cfg_file_raises_SystemExit(self):

        with self.assertRaises(SystemExit):
            result = vfxtest.collectSettings(['--cfg', 'does_not_exist.cfg'])
 def test11_collectSettings_invalid_cfg_file_prints_useful_error_and_raises_SystemExit(
         self):
     with mock.patch.object(vfxtest, '_extractLineNumber', return_value=3):
         with self.assertRaises(SystemExit):
             result = vfxtest.collectSettings(['--cfg', 'invalid_json.cfg'])
    def test12_collectSettings_cfg_bool_values_defined_as_strings_get_converted(
            self):

        result = vfxtest.collectSettings(['--cfg', 'boolean_as_string.cfg'])
        self.assertTrue(result['debug_mode'])
Beispiel #23
0
    def test05_resolveContext_defaults_to_native(self):

        settings = vfxtest.collectSettings(['--target', './python2.x'])
        vfxtest.prepareTestEnvironment(settings)

        self.assertEqual(settings['context'], 'python2.x')
Beispiel #24
0
    def test04_resolveContext_defaults_to_native(self):

        settings = vfxtest.collectSettings()
        vfxtest.prepareTestEnvironment(settings)

        self.assertEqual(settings['context'], 'native')
    def test02_collectSettings_unknown_argument_raises_SystemError(self):

        with self.assertRaises(SystemExit):
            result = vfxtest.collectSettings(['--doesnotexist'])
    def test02_settings_can_be_get_and_set(self):

        foo = vfxtest.TestCase(test_run=True)
        settings = vfxtest.collectSettings()
        foo.settings = settings
        self.assertEqual(foo.settings, settings)