Example #1
0
 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 init_test(self, cd, argv=None, 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'''

        cd = os.path.abspath(cd)
        os.chdir(cd)
        if not wd:
            wd = os.getcwd()
        ReviewDirs.workdir_setup(wd, 'testing')
        if not argv:
            argv = []
        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.clear_builddir()
        Mock.reset()
Example #3
0
    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)
Example #4
0
    def init_test(self, cd, argv=None, 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'''

        cd = os.path.abspath(cd)
        os.chdir(cd)
        if not wd:
            wd = os.getcwd()
        ReviewDirs.workdir_setup(wd, 'testing')
        if not argv:
            argv = []
        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.clear_builddir()
        Mock.reset()
Example #5
0
 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)
Example #6
0
 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)
Example #7
0
 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)
Example #8
0
 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)
Example #9
0
 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)
Example #10
0
 def test_review_dir(self):
     ''' Test ReviewDir setup functions. '''
     self.init_test('.', argv=['-n', 'python-test', '--no-build'])
     from FedoraReview.review_dirs import _ReviewDirs
     os.chdir('review_dir')
     check_output('rm -rf testdirs; mkdir testdirs', shell=True)
     ReviewDirs.workdir_setup('testdirs', 'testing')
     check_output(['touch', 'results/dummy.rpm'])
     os.chdir('..')
     rd = _ReviewDirs()
     rd.workdir_setup('testdirs')
     self.assertEqual(len(glob.glob('*')), 7)
     self.assertEqual(os.path.basename(os.getcwd()), 'testdirs')
     self.assertTrue(os.path.exists('results/dummy.rpm'))
     self.assertEqual(glob.glob('BUILD/*'), ['BUILD/pkg-1.0'])
Example #11
0
 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)
Example #12
0
 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)
Example #13
0
 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
Example #14
0
 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
Example #15
0
 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)
Example #16
0
    def __do_report(self):
        ''' Create a review report'''
        self.log.info('Getting .spec and .srpm Urls from : '
                       + self.bug.get_location())

        Settings.dump()
        if not self.bug.find_urls():
            raise self.HelperError('Cannot find .spec or .srpm URL(s)')

        if not ReviewDirs.is_inited:
            wd = self.bug.get_dirname()
            ReviewDirs.workdir_setup(wd)

        if not self.bug.download_files():
            raise self.HelperError('Cannot download .spec and .srpm')

        Settings.name = self.bug.get_name()
        self.__run_checks(self.bug.spec_file, self.bug.srpm_file)
Example #17
0
    def __do_report(self):
        ''' Create a review report'''
        self.log.info('Getting .spec and .srpm Urls from : ' +
                      self.bug.get_location())

        Settings.dump()
        if not self.bug.find_urls():
            self.log.error('Cannot find .spec or .srpm URL(s)')
            raise HandledError()

        if not ReviewDirs.is_inited:
            wd = self.bug.get_dirname()
            ReviewDirs.workdir_setup(wd)

        if not self.bug.download_files():
            self.log.error('Cannot download .spec and .srpm')
            raise HandledError()

        Settings.name = self.bug.get_name()
        self.__run_checks(self.bug.spec_file, self.bug.srpm_file)
Example #18
0
 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()
Example #19
0
 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()
Example #20
0
 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)
Example #21
0
 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)
Example #22
0
 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)
Example #23
0
 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)
Example #24
0
 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)
Example #25
0
 def setUp(self):
     sys.argv = ['test-bugzilla','-b',TEST_BUG ]
     Settings.init(TEST_BUG )
     ReviewDirs.workdir_setup('.', True)
     self.bug = BugzillaBug(TEST_BUG)