def setUp(self): sys.argv = ['fedora-review','-rpn','R-Rdummypkg'] os.chdir('test-R') if os.path.exists('R-Rdummypkg'): shutil.rmtree('R-Rdummypkg') Settings.init(True) ReviewDirs.reset()
def test_source_file(self): """ Test the SourceFile class """ if os.path.exists('python-test'): shutil.rmtree('python-test') sys.argv = ['fedora-review', '-n', 'python-test'] Settings.init(True) ReviewDirs.reset() ReviewDirs.workdir_setup('.', True) bug = NameBug('python-test') bug.find_urls() bug.download_files() spec = SpecFile(bug.spec_file) sources = Sources(spec) source = Source(sources, 'Source0', TEST_SRC) # check that source exists and source.filename point to the right location expected = os.path.abspath('./upstream/python-test-1.0.tar.gz') self.assertEqual(source.filename, expected) self.assertEqual(source.is_archive(), True) self.assertTrue(os.path.exists(source.filename)) self.assertEqual( source.check_source_checksum(), "7ef644ee4eafa62cfa773cad4056cdcea592e27dacd5ae" "b4e8b11f51f5bf60d3") os.chdir(self.startdir)
def test_prebuilt(self): ''' test --name --prebuilt ''' argv = ['fedora-review', '-rpn', 'python-spiffgtkwidgets'] argv.extend(['--mock-config', 'fedora-16-i386']) sys.argv = argv os.chdir('prebuilt') if os.path.exists('python-spiffgtkwidgets'): shutil.rmtree('python-spiffgtkwidgets') ReviewDirs.reset() Settings.init(True) rpms = glob('/var/lib/mock/fedora-16-i386/*.rpm') for r in rpms: os.unlink(r) rh = ReviewHelper() sys.stdout = open( '/dev/null', 'w') rh.run() sys.stdout = sys.__stdout__ self.assertEqual(len(rpms), 0) rv = 'python-spiffgtkwidgets-review.txt' with open(os.path.abspath(rv)) as f: log = '\n'.join(f.readlines()) self.assertIn('Using prebuilt rpms', log) os.chdir(startdir)
def setUp(self): sys.argv = ['fedora-review', '-rpn', 'R-Rdummypkg'] os.chdir('test-R') if os.path.exists('R-Rdummypkg'): shutil.rmtree('R-Rdummypkg') Settings.init(True) ReviewDirs.reset()
def init_test(self, cd, argv=[], wd=None, buildroot=None, options=None): # Initiate a test which runs in directory cd # kwargs: # argv: fed to sys.argv and eventually to Settings # fedora-review is prepended and mock_root appended. # wd: review directory, cleared. # options: mock-options os.chdir(cd) if wd: if os.path.exists(wd): shutil.rmtree(wd) ReviewDirs.reset(cd) ReviewDirs.workdir_setup(os.getcwd(), True) args = argv args.insert(0, 'fedora-review') br = buildroot if buildroot else self.BUILDROOT args.append("--mock-config=" + br) opts = [] if NO_NET: opts.append('--offline') if options: opts.append(options) if opts: argv.append('--mock-options=' + ' '.join(opts)) sys.argv = argv Settings.init(True) Mock.reset()
def test_prebuilt(self): """ test --name --prebuilt """ argv = ["fedora-review", "-rpn", "python-spiffgtkwidgets"] argv.extend(["--mock-config", "fedora-16-i386"]) sys.argv = argv os.chdir("prebuilt") if os.path.exists("python-spiffgtkwidgets"): shutil.rmtree("python-spiffgtkwidgets") ReviewDirs.reset() Settings.init(True) rpms = glob("/var/lib/mock/fedora-16-i386/*.rpm") for r in rpms: os.unlink(r) rh = ReviewHelper() sys.stdout = open("/dev/null", "w") rh.run() sys.stdout = sys.__stdout__ self.assertEqual(len(rpms), 0) rv = "python-spiffgtkwidgets-review.txt" with open(os.path.abspath(rv)) as f: log = "\n".join(f.readlines()) self.assertIn("Using prebuilt rpms", log) os.chdir(startdir)
def test_unversioned_so_private(self): self.init_test('unversioned-so-private', argv=['-rpn', 'python-test', '--cache'], wd='python-test') ReviewDirs.reset(os.getcwd()) bug = NameBug('python-test') check = self.run_single_check(bug,'CheckSoFiles') self.assertTrue(check.is_pending)
def test_107_no_space_config(self): """ Test the case when there is no space in %config line between the file and macro itself """ self.init_test('test_regressions', argv=['-rn', self.srpm_file, '--cache']) ReviewDirs.reset(os.getcwd()) bug = NameBug(self.srpm_file) check = self.run_single_check(bug, 'CheckNoConfigInUsr') self.assertTrue(check.is_failed)
def init_test(self, argv= ['fedora-review'], d=None): os.chdir(startdir) if d: os.chdir(d) if os.path.exists('python-test'): shutil.rmtree('python-test') ReviewDirs.reset() ReviewDirs.workdir_setup('.', True) sys.argv = argv Settings.init(True)
def init_test(self, argv=["fedora-review"], d=None): os.chdir(startdir) if d: os.chdir(d) if os.path.exists("python-test"): shutil.rmtree("python-test") ReviewDirs.reset() ReviewDirs.workdir_setup(".", True) sys.argv = argv Settings.init(True)
def test_107_changelog_skipping(self): """ Test the case when sourceX is name and we use f-r -n so that file gets mixed up with a directory """ self.init_test('test_regressions', argv=['-rn', self.srpm_file]) ReviewDirs.reset(os.getcwd()) spec = SpecFile(self.spec_file) regex = re.compile('initial fedora') self.assertEqual(len(spec.find_all(regex)), 2) self.assertEqual(len(spec.find_all(regex, True)), 1)
def test_spec_file(self): ''' Test the SpecFile class''' ReviewDirs.reset() ReviewDirs.workdir_setup('.', True) dest = Mock.get_builddir('SOURCES') if not os.path.exists(dest): os.makedirs(dest) self.helpers._get_file(TEST_SPEC, Mock.get_builddir('SOURCES')) spec = SpecFile(self.spec_file) # Test misc rpm values (Macro resolved) self.assertEqual(spec.name, 'python-test') self.assertEqual(spec.version, '1.0') # resolve the dist-tag dist = self.helpers._run_cmd('rpm --eval %dist')[:-1] self.assertEqual(spec.release, '1' + dist) # test misc rpm values (without macro resolve) self.assertEqual(spec.find_tag('Release'), ['1%{?dist}']) self.assertEqual(spec.find_tag('License'), ['GPLv2+']) self.assertEqual(spec.find_tag('Group'), ['Development/Languages']) # Test rpm value not there self.assertEqual(spec.find_tag('PreReq'), []) # Test get sections expected = {'%clean': ['rm -rf $RPM_BUILD_ROOT']} self.assertEqual(spec.get_section('%clean'), expected) expected = {'%build': ['%{__python} setup.py build']} self.assertEqual(spec.get_section('%build'), expected) expected = { '%install': [ 'rm -rf $RPM_BUILD_ROOT', '%{__python} setup.py install -O1 --skip-build' ' --root $RPM_BUILD_ROOT' ] } self.assertEqual(spec.get_section('%install'), expected) expected = { '%files': ['%defattr(-,root,root,-)', '%doc COPYING', '%{python_sitelib}/*'] } self.assertEqual(spec.get_section('%files'), expected) # Test get_sources (return the Source/Patch lines with macros resolved) expected = { 'Source0': 'http://timlau.fedorapeople.org/' 'files/test/review-test/python-test-1.0.tar.gz' } self.assertEqual(spec.get_sources(), expected) # Test find regex = re.compile(r'^Release\s*:\s*(.*)') res = spec.find(regex) if res: self.assertEqual(res.groups(), ('1%{?dist}', )) else: self.assertTrue(False) os.chdir(self.startdir)
def test_desktop_file_bug(self): os.chdir('desktop-file') if os.path.exists('python-test'): shutil.rmtree('python-test') sys.argv = ['fedora-review','-rpn','python-test'] Settings.init(True) ReviewDirs.reset() bug = NameBug('python-test') check = self.run_single_check(bug,'CheckDesktopFileInstall') self.assertEqual(check.state, 'pass') os.chdir(self.startdir)
def test_desktop_file_bug(self): os.chdir('desktop-file') if os.path.exists('python-test'): shutil.rmtree('python-test') sys.argv = ['fedora-review', '-rpn', 'python-test'] Settings.init(True) ReviewDirs.reset() bug = NameBug('python-test') check = self.run_single_check(bug, 'CheckDesktopFileInstall') self.assertEqual(check.state, 'pass') os.chdir(self.startdir)
def test_rpm_spec(self): self.init_test('test_misc', argv=['-rn','python-test', '--cache', '--no-build']) ReviewDirs.reset() bug = NameBug('python-test') bug.find_urls() expected = 'src/test/test_misc/python-test-1.0-1.fc16.src.rpm' self.assertTrue(bug.srpm_url.endswith(expected)) expected = 'src/test/test_misc/review-python-test/srpm-unpacked/python-test.spec' print bug.spec_url self.assertTrue(bug.spec_url.endswith(expected))
def test_bad_specname(self): self.init_test('bad-specname', argv=['-rn','python-test', '--cache']) ReviewDirs.reset(os.getcwd()) bug = NameBug('python-test') bug.find_urls() bug.download_files() checks = Checks(bug.spec_file, bug.srpm_file) check = checks.checkdict['CheckSpecAsInSRPM'] check.run() self.assertTrue(check.is_failed) self.assertIn('Bad spec filename:', check.result.output_extra)
def test_all_checks(self): ''' Run all automated review checks''' self.init_test('test-R', argv=['-rpn','R-Rdummypkg', '--no-build']) ReviewDirs.reset() self.bug = NameBug('R-Rdummypkg') self.bug.find_urls() self.bug.download_files() self.checks = Checks(self.bug.spec_file, self.bug.srpm_file) self.checks.run_checks(writedown=False) for check in self.checks.checkdict.itervalues(): if check.is_passed or check.is_pending or check.is_failed: self.assertIn(check.group, ['Generic', 'R'])
def test_107_source_same_as_name(self): """ Test the case when Source is equal to %{name} """ srpm_file = os.path.join(os.path.abspath('.'), 'test_regressions', 'test_107_2-1.0-1.fc17.src.rpm') self.init_test('test_regressions', argv=['-rn', srpm_file, '--cache']) ReviewDirs.reset(os.getcwd()) bug = NameBug(srpm_file) bug.find_urls() self.assertNotEqual(None, bug.srpm_file) self.assertNotEqual(None, bug.spec_file)
def test_local_repo(self): self.init_test('test_misc', argv=['-rn','python-test', '--local-repo', 'repo', '--cache']) ReviewDirs.reset(os.getcwd()) bug = NameBug('python-test') bug.find_urls() bug.download_files() checks = Checks(bug.spec_file, bug.srpm_file) check = checks.checkdict['CheckPackageInstalls'] check.run() self.assertTrue(check.is_passed) self.assertTrue(Mock.is_installed('dummy'))
def test_rpm_spec(self): sys.argv = ['fedora-review','-rn','python-test'] Settings.init(True) ReviewDirs.reset() if os.path.exists('python-test'): shutil.rmtree('python-test') bug = NameBug('python-test') bug.find_urls() expected = 'src/test/python-test-1.0-1.fc16.src.rpm' self.assertTrue(bug.srpm_url.endswith(expected)) expected = 'src/test/python-test/srpm-unpacked/python-test.spec' self.assertTrue(bug.spec_url.endswith(expected)) os.chdir(self.startdir)
def test_bad_specfile(self): os.chdir('bad-spec') if os.path.exists('python-test'): shutil.rmtree('python-test') sys.argv = ['fedora-review','-pn','python-test'] Settings.init(True) ReviewDirs.reset() ReviewDirs.workdir_setup('.', True) bug = NameBug('python-test') check = self.run_single_check(bug,'CheckSpecAsInSRPM') self.assertEqual(check.state, 'fail') self.assertTrue('#TestTag' in check.attachments[0].text) os.chdir(self.startdir)
def test_bad_specfile(self): os.chdir('bad-spec') if os.path.exists('python-test'): shutil.rmtree('python-test') sys.argv = ['fedora-review', '-pn', 'python-test'] Settings.init(True) ReviewDirs.reset() ReviewDirs.workdir_setup('.', True) bug = NameBug('python-test') check = self.run_single_check(bug, 'CheckSpecAsInSRPM') self.assertEqual(check.state, 'fail') self.assertTrue('#TestTag' in check.attachments[0].text) os.chdir(self.startdir)
def test_rpm_spec(self): sys.argv = ['fedora-review', '-rn', 'python-test'] Settings.init(True) ReviewDirs.reset() if os.path.exists('python-test'): shutil.rmtree('python-test') bug = NameBug('python-test') bug.find_urls() expected = 'src/test/python-test-1.0-1.fc16.src.rpm' self.assertTrue(bug.srpm_url.endswith(expected)) expected = 'src/test/python-test/srpm-unpacked/python-test.spec' self.assertTrue(bug.spec_url.endswith(expected)) os.chdir(self.startdir)
def test_md5sum_diff_fail(self): self.init_test('md5sum-diff-fail', argv=['-rpn','python-test', '--cache', '--no-build']) ReviewDirs.reset(os.getcwd()) bug = NameBug('python-test') bug.find_urls() checks = Checks(bug.spec_file, bug.srpm_file).get_checks() checks.set_single_check('CheckSourceMD5') check = checks['CheckSourceMD5'] check.run() self.assertTrue(check.is_failed) expected = 'diff -r also reports differences' self.assertTrue(expected in check.result.attachments[0].text)
def test_bugzilla_bug(self): sys.argv = ['fedora-review','-b','817268'] Settings.init(True) ReviewDirs.reset() ReviewDirs.workdir_setup('.', True) bug = BugzillaBug('817268') bug.find_urls() expected ='http://dl.dropbox.com/u/17870887/python-faces-0.11.7-2' \ '/python-faces-0.11.7-2.fc16.src.rpm' self.assertEqual(expected, bug.srpm_url) expected = 'http://dl.dropbox.com/u/17870887/python-faces-0.11.7-2/' \ 'python-faces.spec' self.assertEqual(expected, bug.spec_url) self.assertEqual(None, bug.spec_file) self.assertEqual(None, bug.srpm_file) os.chdir(self.startdir)
def test_srv_opt(self): ''' Test check of no files in /srv, /opt and /usr/local. ''' self.init_test('srv-opt', argv=['-rn','dummy', '--cache', '--no-build']) ReviewDirs.reset(os.getcwd()) bug = NameBug('dummy') bug.find_urls() bug.download_files() checks = Checks(bug.spec_file, bug.srpm_file) check = checks.checkdict['CreateEnvCheck'].run() check = checks.checkdict['check-srv-opt-local'] check.run() self.assertTrue( '/srv' in check.result.output_extra) self.assertTrue( '/opt' in check.result.output_extra) self.assertTrue( '/usr/local' in check.result.output_extra)
def test_perl_module(self): ''' test basic perl python + shell test ''' self.init_test('perl', argv=['-rn','perl-RPM-Specfile', '--no-build']) ReviewDirs.reset(os.getcwd()) bug = NameBug('perl-RPM-Specfile') bug.find_urls() bug.download_files() checks = Checks(bug.spec_file, bug.srpm_file) checks.checkdict['CreateEnvCheck'].run() check = checks.checkdict['PerlCheckBuildRequires'] check.run() self.assertTrue(check.is_pending) check = checks.checkdict['perl-url-tag'] check.run() self.assertTrue(check.is_pending)
def test_bugzilla_bug(self): sys.argv = ['fedora-review', '-b', '817268'] Settings.init(True) ReviewDirs.reset() ReviewDirs.workdir_setup('.', True) bug = BugzillaBug('817268') bug.find_urls() expected ='http://dl.dropbox.com/u/17870887/python-faces-0.11.7-2' \ '/python-faces-0.11.7-2.fc16.src.rpm' self.assertEqual(expected, bug.srpm_url) expected = 'http://dl.dropbox.com/u/17870887/python-faces-0.11.7-2/' \ 'python-faces.spec' self.assertEqual(expected, bug.spec_url) self.assertEqual(None, bug.spec_file) self.assertEqual(None, bug.srpm_file) os.chdir(self.startdir)
def setUp(self): self.startdir = os.getcwd() sys.argv = ['test-checks','-b','1234'] Settings.init(True) ReviewDirs.reset() ReviewDirs.workdir_setup('.', True) if not os.path.exists(TEST_WORK_DIR): os.makedirs(TEST_WORK_DIR) self.checks = None self.srpm = TEST_WORK_DIR + os.path.basename(TEST_SRPM) self.spec = TEST_WORK_DIR + os.path.basename(TEST_SPEC) self.source = TEST_WORK_DIR + os.path.basename(TEST_SRC) helper = Helpers() helper._get_file(TEST_SRPM, TEST_WORK_DIR) helper._get_file(TEST_SRC, TEST_WORK_DIR) helper._get_file(TEST_SPEC, TEST_WORK_DIR) del helper
def setUp(self): self.startdir = os.getcwd() sys.argv = ['test-checks', '-b', '1234'] Settings.init(True) ReviewDirs.reset() ReviewDirs.workdir_setup('.', True) if not os.path.exists(TEST_WORK_DIR): os.makedirs(TEST_WORK_DIR) self.checks = None self.srpm = TEST_WORK_DIR + os.path.basename(TEST_SRPM) self.spec = TEST_WORK_DIR + os.path.basename(TEST_SPEC) self.source = TEST_WORK_DIR + os.path.basename(TEST_SRC) helper = Helpers() helper._get_file(TEST_SRPM, TEST_WORK_DIR) helper._get_file(TEST_SRC, TEST_WORK_DIR) helper._get_file(TEST_SPEC, TEST_WORK_DIR) del helper
def test_spec_file(self): ''' Test the SpecFile class''' ReviewDirs.reset() ReviewDirs.workdir_setup('.', True) dest = Mock.get_builddir('SOURCES') if not os.path.exists(dest): os.makedirs(dest) self.helpers._get_file(TEST_SPEC, Mock.get_builddir('SOURCES')) spec = SpecFile(self.spec_file) # Test misc rpm values (Macro resolved) self.assertEqual(spec.name,'python-test') self.assertEqual(spec.version,'1.0') # resolve the dist-tag dist = self.helpers._run_cmd('rpm --eval %dist')[:-1] self.assertEqual(spec.release,'1'+dist) # test misc rpm values (without macro resolve) self.assertEqual(spec.find_tag('Release'), ['1%{?dist}']) self.assertEqual(spec.find_tag('License'), ['GPLv2+']) self.assertEqual(spec.find_tag('Group'), ['Development/Languages']) # Test rpm value not there self.assertEqual(spec.find_tag('PreReq'), []) # Test get sections expected = {'%clean': ['rm -rf $RPM_BUILD_ROOT']} self.assertEqual(spec.get_section('%clean'), expected) expected = {'%build': ['%{__python} setup.py build']} self.assertEqual(spec.get_section('%build'), expected) expected = {'%install': ['rm -rf $RPM_BUILD_ROOT', '%{__python} setup.py install -O1 --skip-build' ' --root $RPM_BUILD_ROOT']} self.assertEqual(spec.get_section('%install'),expected) expected = {'%files': ['%defattr(-,root,root,-)', '%doc COPYING', '%{python_sitelib}/*']} self.assertEqual(spec.get_section('%files'),expected) # Test get_sources (return the Source/Patch lines with macros resolved) expected = {'Source0': 'http://timlau.fedorapeople.org/' 'files/test/review-test/python-test-1.0.tar.gz'} self.assertEqual(spec.get_sources(), expected) # Test find regex = re.compile(r'^Release\s*:\s*(.*)') res = spec.find(regex) if res: self.assertEqual(res.groups(), ('1%{?dist}',)) else: self.assertTrue(False) os.chdir(self.startdir)
def test_md5sum_diff_fail(self): os.chdir('md5sum-diff-fail') sys.argv = ['fedora-review', '-rpn', 'python-test'] Settings.init(True) ReviewDirs.reset() if os.path.exists('python-test'): shutil.rmtree('python-test') bug = NameBug('python-test') bug.find_urls() checks = Checks(bug.spec_file, bug.srpm_file) checks.set_single_check('CheckSourceMD5') self.assertEqual(len(checks.checks), 1) check = checks.checks[0] check.run() self.assertEqual(check.state, 'fail') expected = 'diff -r also reports differences' self.assertTrue(expected in check.attachments[0].text) os.chdir(self.startdir)
def test_md5sum_diff_fail(self): os.chdir('md5sum-diff-fail') sys.argv = ['fedora-review','-rpn','python-test'] Settings.init(True) ReviewDirs.reset() if os.path.exists('python-test'): shutil.rmtree('python-test') bug = NameBug('python-test') bug.find_urls() checks = Checks(bug.spec_file, bug.srpm_file) checks.set_single_check('CheckSourceMD5') self.assertEqual(len(checks.checks), 1) check = checks.checks[0] check.run() self.assertEqual(check.state, 'fail') expected = 'diff -r also reports differences' self.assertTrue(expected in check.attachments[0].text) os.chdir(self.startdir)
def test_jsonapi(self): self.init_test('test_misc', argv=['-rpn','python-test', '--no-build']) ReviewDirs.reset(os.getcwd()) os.environ['REVIEW_EXT_DIRS'] = os.path.normpath(os.getcwd() + '/../api') bug = NameBug('python-test') bug.find_urls() bug.download_files() checks = Checks(bug.spec_file, bug.srpm_file).get_checks() test1 = checks['test1'] test2 = checks['ExtShellTest2'] self.assertEqual( test1.group, 'Generic') self.assertEqual( test1.type, 'EXTRA') self.assertEqual( test1.text, 'A check solely for test purposes.') self.assertEqual( test2.group, 'Generic') self.assertEqual( test2.type, 'EXTRA') self.assertEqual( test2.text, 'A second check solely for test purposes.')
def test_rpm_spec(self): """ Test --rpm-spec/-r option """ self.init_test(["fedora-review", "-rn", "python-test"], "desktop-file") if os.path.exists("python-test"): shutil.rmtree("python-test") ReviewDirs.reset() bug = NameBug(Settings.name) bug.find_urls() expected = abs_file_url("../python-test-1.0-1.fc16.src.rpm") self.assertEqual(expected, bug.srpm_url) expected = abs_file_url("./srpm-unpacked/python-test.spec") self.assertEqual(expected, bug.spec_url), bug.download_files() expected = os.path.abspath("../python-test-1.0-1.fc16.src.rpm") self.assertEqual(expected, bug.srpm_file), expected = os.path.abspath("./srpm-unpacked/python-test.spec") self.assertEqual(expected, bug.spec_file), os.chdir(startdir)
def test_git_source(self): ''' test use of local source0 tarball ''' argv = ['fedora-review', '-rpn', 'get-flash-videos'] argv.extend(['--mock-config', 'fedora-16-i386-rpmfusion_nonfree']) sys.argv = argv os.chdir('git-source') if os.path.exists('get-flash-videos'): shutil.rmtree('get-flash-videos') ReviewDirs.reset() Settings.init(True) rh = ReviewHelper() sys.stdout = open( '/dev/null', 'w') rh.run() sys.stdout = sys.__stdout__ rv = 'get-flash-videos-review.txt' with open(os.path.abspath(rv)) as f: log = f.read() self.assertIn('Using local file' , log) os.chdir(startdir)
def test_sources(self): if os.path.exists('python-test'): shutil.rmtree('python-test') sys.argv = ['fedora-review', '-n', 'python-test'] Settings.init(True) ReviewDirs.reset() ReviewDirs.workdir_setup('.', True) bug = NameBug('python-test') bug.find_urls() bug.download_files() checks = Checks(bug.spec_file, bug.srpm_file) checks.set_single_check('CheckSourceMD5') self.assertEqual(len(checks.checks), 1) check = checks.checks[0] check.run() result = check.get_result() self.log.debug('result : ' + result.result) if result.output_extra: self.log.debug("Result extra text: " + result.output_extra) self.assertEqual(result.result, 'pass') os.chdir(self.startdir)
def setUp(self): sys.argv = ['fedora-review','-n','python-test','--prebuilt'] Settings.init(True) ReviewDirs.reset() ReviewDirs.workdir_setup('.', True) self.log = Settings.get_logger() self.helpers = Helpers() self.srpm_file = os.path.join(os.path.abspath('.'), os.path.basename(TEST_SRPM)) self.spec_file = os.path.join(Mock.get_builddir('SOURCES'), os.path.basename(TEST_SPEC)) self.source_file = os.path.join(Mock.get_builddir('SOURCES'), os.path.basename(TEST_SRC)) if not os.path.exists(TEST_WORK_DIR): os.makedirs(TEST_WORK_DIR) self.helpers._get_file(TEST_SRPM, TEST_WORK_DIR) self.startdir = os.getcwd() for tree in ['python-test', 'results']: if os.path.exists(tree): shutil.rmtree(tree) Mock.reset()
def setUp(self): sys.argv = ['fedora-review', '-n', 'python-test', '--prebuilt'] Settings.init(True) ReviewDirs.reset() ReviewDirs.workdir_setup('.', True) self.log = Settings.get_logger() self.helpers = Helpers() self.srpm_file = os.path.join(os.path.abspath('.'), os.path.basename(TEST_SRPM)) self.spec_file = os.path.join(Mock.get_builddir('SOURCES'), os.path.basename(TEST_SPEC)) self.source_file = os.path.join(Mock.get_builddir('SOURCES'), os.path.basename(TEST_SRC)) if not os.path.exists(TEST_WORK_DIR): os.makedirs(TEST_WORK_DIR) self.helpers._get_file(TEST_SRPM, TEST_WORK_DIR) self.startdir = os.getcwd() for tree in ['python-test', 'results']: if os.path.exists(tree): shutil.rmtree(tree) Mock.reset()
def test_rpm_spec(self): """ Test --rpm-spec/-r option """ self.init_test(['fedora-review','-rn','python-test'], 'desktop-file') if os.path.exists('python-test'): shutil.rmtree('python-test') ReviewDirs.reset() bug = NameBug(Settings.name) bug.find_urls() expected = abs_file_url('../python-test-1.0-1.fc16.src.rpm') self.assertEqual(expected, bug.srpm_url) expected = abs_file_url('./srpm-unpacked/python-test.spec') self.assertEqual(expected, bug.spec_url), bug.download_files() expected = os.path.abspath('../python-test-1.0-1.fc16.src.rpm') self.assertEqual(expected, bug.srpm_file), expected = os.path.abspath('./srpm-unpacked/python-test.spec') self.assertEqual(expected, bug.spec_file), os.chdir(startdir)
def test_sources(self): if os.path.exists('python-test'): shutil.rmtree('python-test') sys.argv = ['fedora-review','-n','python-test'] Settings.init(True) ReviewDirs.reset() ReviewDirs.workdir_setup('.', True) bug = NameBug('python-test') bug.find_urls() bug.download_files() checks = Checks(bug.spec_file, bug.srpm_file) checks.set_single_check('CheckSourceMD5') self.assertEqual(len(checks.checks), 1) check = checks.checks[0] check.run() result = check.get_result() self.log.debug('result : ' + result.result) if result.output_extra: self.log.debug("Result extra text: " + result.output_extra) self.assertEqual( result.result, 'pass') os.chdir(self.startdir)
def test_git_source(self): """ test use of local source0 tarball """ argv = ["fedora-review", "-rpn", "get-flash-videos"] argv.extend(["--mock-config", "fedora-16-i386-rpmfusion_nonfree"]) sys.argv = argv os.chdir("git-source") if os.path.exists("get-flash-videos"): shutil.rmtree("get-flash-videos") ReviewDirs.reset() Settings.init(True) rh = ReviewHelper() sys.stdout = open("/dev/null", "w") rh.run() sys.stdout = sys.__stdout__ rv = "get-flash-videos-review.txt" with open(os.path.abspath(rv)) as f: log = f.read() self.assertIn("Using local file", log) os.chdir(startdir)
def test_srpm_mockbuild(self): """ Test the SRPMFile class """ ReviewDirs.reset() ReviewDirs.workdir_setup('.', True) sys.argv = ['fedora-review', '-b', '817268', '-m', 'fedora-16-i386'] Settings.init(True) self.helpers._get_file(TEST_SRPM, os.path.abspath('.')) srpm = SRPMFile(self.srpm_file) # install the srpm srpm.unpack() self.assertTrue(hasattr(srpm, 'unpacked_src')) src_dir = srpm.unpacked_src src_files = glob.glob(os.path.expanduser(src_dir) + '/*') src_files = [os.path.basename(f) for f in src_files] self.assertTrue('python-test-1.0.tar.gz' in src_files) self.log.info("Starting mock build (patience...)") srpm.mockbuild() self.assertTrue(srpm.is_build) rpms = glob.glob( os.path.join(Mock.resultdir, 'python-test-1.0-1*noarch.rpm')) self.assertEqual(1, len(rpms)) os.chdir(self.startdir)
def test_sh_attach(self): ''' Test shell attachments. ''' self.init_test('test_ext', argv=['-rn','python-test', '--no-build']) ReviewDirs.reset(os.getcwd()) bug = NameBug('python-test') bug.find_urls() bug.download_files() checks = Checks(bug.spec_file, bug.srpm_file).get_checks() checks['CreateEnvCheck'].run() check = checks['test-attachments'] check.run() self.assertEqual(len(check.result.attachments), 2) a1 = filter( lambda a: 'attachment 1' in a.text, check.result.attachments)[0] a2 = filter( lambda a: 'attachment 2' in a.text, check.result.attachments)[0] self.assertEqual('Heading 1', a1.header) self.assertEqual(8, a1.order_hint) self.assertEqual('Heading 2', a2.header) self.assertEqual(9, a2.order_hint)
def test_srpm_mockbuild(self): """ Test the SRPMFile class """ ReviewDirs.reset() ReviewDirs.workdir_setup('.', True) sys.argv = ['fedora-review','-b','817268', '-m', 'fedora-16-i386'] Settings.init(True) self.helpers._get_file(TEST_SRPM, os.path.abspath('.')) srpm = SRPMFile(self.srpm_file) # install the srpm srpm.unpack() self.assertTrue(hasattr(srpm, 'unpacked_src')) src_dir = srpm.unpacked_src src_files = glob.glob(os.path.expanduser(src_dir) + '/*') src_files = [os.path.basename(f) for f in src_files] self.assertTrue('python-test-1.0.tar.gz' in src_files) self.log.info("Starting mock build (patience...)") srpm.mockbuild() self.assertTrue(srpm.is_build) rpms = glob.glob(os.path.join(Mock.resultdir, 'python-test-1.0-1*noarch.rpm')) self.assertEqual(1, len(rpms)) os.chdir(self.startdir)
def test_source_file(self): """ Test the SourceFile class """ if os.path.exists('python-test'): shutil.rmtree('python-test') sys.argv = ['fedora-review','-n','python-test'] Settings.init(True) ReviewDirs.reset() ReviewDirs.workdir_setup('.', True) bug = NameBug('python-test') bug.find_urls() bug.download_files() spec = SpecFile(bug.spec_file) sources = Sources(spec) source = Source(sources, 'Source0', TEST_SRC) # check that source exists and source.filename point to the right location expected = os.path.abspath('./upstream/python-test-1.0.tar.gz') self.assertEqual(source.filename, expected) self.assertEqual(source.is_archive(), True) self.assertTrue(os.path.exists(source.filename)) self.assertEqual(source.check_source_checksum(), "7ef644ee4eafa62cfa773cad4056cdcea592e27dacd5ae" "b4e8b11f51f5bf60d3") os.chdir(self.startdir)