示例#1
0
 def test_import_build_non_exist_file(self, os_path_exists):
     uploadpath = koji.pathinfo.work()
     os_path_exists.return_value = False
     with self.assertRaises(koji.GenericError) as cm:
         kojihub.import_build(self.src_filename, [self.filename])
     self.assertEqual(
         "No such file: %s/%s" % (uploadpath, self.src_filename),
         str(cm.exception))
示例#2
0
    def test_import_build_completed_build(self, work, get_rpm_header,
                                          new_package, context, query,
                                          import_rpm, import_rpm_file,
                                          rip_rpm_sighdr, add_rpm_sig,
                                          get_build, _singleValue, _dml):

        rip_rpm_sighdr.return_value = (0, 0)

        processor = mock.MagicMock()
        processor.executeOne.return_value = None
        query.return_value = processor

        context.session.user_id = 99

        work.return_value = '/'

        retval = copy.copy(self.rpm_header_retval)
        retval.update({
            'filename': 'name-version-release.arch.rpm',
            1044: 'name-version-release.src',
            1022: 'src',
            1106: 1,
        })
        get_rpm_header.return_value = retval

        kojihub.import_build(self.src_filename, [self.filename])

        fields = [
            'task_id',
            'extra',
            'start_time',
            'epoch',
            'completion_time',
            'state',
            'version',
            'source',
            'volume_id',
            'owner',
            'release',
            'pkg_id',
            'id',
        ]
        statement = 'INSERT INTO build (%s) VALUES (%s)' % (
            ", ".join(fields),
            ", ".join(['%%(%s)s' % field for field in fields])
        )
        values = {
            'task_id': None,
            'extra': None,
            'start_time': 'NOW',
            'epoch': 'epoch',
            'completion_time': 'NOW',
            'state': 1,
            'version': 'version',
            'source': None,
            'volume_id': 0,
            'owner': 99,
            'release': 'release',
            'pkg_id': mock.ANY,
            'id': mock.ANY,
        }
        _dml.assert_called_once_with(statement, values)
示例#3
0
    def test_import_build_completed_build(
            self, work, get_rpm_header, new_package, context, query,
            import_rpm, import_rpm_file, rip_rpm_sighdr, add_rpm_sig,
            get_build, _singleValue, _dml, new_typed_build,
            check_volume_policy):

        rip_rpm_sighdr.return_value = (0, 0)

        processor = mock.MagicMock()
        processor.executeOne.return_value = None
        query.return_value = processor

        context.session.user_id = 99

        work.return_value = '/'

        check_volume_policy.return_value = {'id': 0, 'name': 'DEFAULT'}

        retval = copy.copy(self.rpm_header_retval)
        retval.update({
            'filename': 'name-version-release.arch.rpm',
            1044: 'name-version-release.src',
            1022: 'src',
            1106: 1,
        })
        get_rpm_header.return_value = retval
        binfo = {
            'state': koji.BUILD_STATES['COMPLETE'],
            'name': 'name',
            'version': 'version',
            'release': 'release',
            'id': 12345,
        }
        # get_build called once to check for existing,
        # if it doesn't exist, called another time after creating
        # then 3rd later to get the build info
        get_build.side_effect = [None, binfo, binfo]

        kojihub.import_build(self.src_filename, [self.filename])

        fields = [
            'task_id',
            'extra',
            'start_time',
            'epoch',
            'completion_time',
            'state',
            'version',
            'source',
            'volume_id',
            'owner',
            'release',
            'pkg_id',
            'id',
        ]
        statement = 'INSERT INTO build (%s) VALUES (%s)' % (", ".join(
            fields), ", ".join(['%%(%s)s' % field for field in fields]))
        values = {
            'task_id': None,
            'extra': None,
            'start_time': 'NOW',
            'epoch': 'epoch',
            'completion_time': 'NOW',
            'state': 1,
            'version': 'version',
            'source': None,
            'volume_id': 0,
            'owner': 99,
            'release': 'release',
            'pkg_id': mock.ANY,
            'id': mock.ANY,
        }
        _dml.assert_called_once_with(statement, values)
    def test_import_build_completed_build(self, work, get_rpm_header,
                                          new_package, context, query,
                                          import_rpm, import_rpm_file,
                                          rip_rpm_sighdr, add_rpm_sig,
                                          get_build, _singleValue, _dml,
                                          new_typed_build, check_volume_policy):

        rip_rpm_sighdr.return_value = (0, 0)

        processor = mock.MagicMock()
        processor.executeOne.return_value = None
        query.return_value = processor

        context.session.user_id = 99

        work.return_value = '/'

        check_volume_policy.return_value = {'id':0, 'name': 'DEFAULT'}

        retval = copy.copy(self.rpm_header_retval)
        retval.update({
            'filename': 'name-version-release.arch.rpm',
            1044: 'name-version-release.src',
            1022: 'src',
            1106: 1,
        })
        get_rpm_header.return_value = retval
        binfo = {
            'state': koji.BUILD_STATES['COMPLETE'],
            'name': 'name',
            'version': 'version',
            'release': 'release',
            'id': 12345,
        }
        # get_build called once to check for existing,
        # if it doesn't exist, called another time after creating
        # then 3rd later to get the build info
        get_build.side_effect = [None, binfo, binfo]

        kojihub.import_build(self.src_filename, [self.filename])

        fields = [
            'completion_time',
            'epoch',
            'extra',
            'id',
            'owner',
            'pkg_id',
            'release',
            'source',
            'start_time',
            'state',
            'task_id',
            'version',
            'volume_id',
        ]
        statement = 'INSERT INTO build (%s) VALUES (%s)' % (
            ", ".join(fields),
            ", ".join(['%%(%s)s' % field for field in fields])
        )
        values = {
            'task_id': None,
            'extra': None,
            'start_time': 'NOW',
            'epoch': 'epoch',
            'completion_time': 'NOW',
            'state': 1,
            'version': 'version',
            'source': None,
            'volume_id': 0,
            'owner': 99,
            'release': 'release',
            'pkg_id': mock.ANY,
            'id': mock.ANY,
        }
        _dml.assert_called_once_with(statement, values)
示例#5
0
    def test_import_build_completed_build(
        self,
        work,
        get_rpm_header,
        new_package,
        context,
        query,
        import_rpm,
        import_rpm_file,
        rip_rpm_sighdr,
        add_rpm_sig,
        get_build,
        _singleValue,
        _dml,
        new_typed_build,
    ):

        rip_rpm_sighdr.return_value = (0, 0)

        processor = mock.MagicMock()
        processor.executeOne.return_value = None
        query.return_value = processor

        context.session.user_id = 99

        work.return_value = "/"

        retval = copy.copy(self.rpm_header_retval)
        retval.update(
            {"filename": "name-version-release.arch.rpm", 1044: "name-version-release.src", 1022: "src", 1106: 1}
        )
        get_rpm_header.return_value = retval
        binfo = {
            "state": koji.BUILD_STATES["COMPLETE"],
            "name": "name",
            "version": "version",
            "release": "release",
            "id": 12345,
        }
        # get_build called once to check for existing,
        # then later to get the build info
        get_build.side_effect = [None, binfo]

        kojihub.import_build(self.src_filename, [self.filename])

        fields = [
            "task_id",
            "extra",
            "start_time",
            "epoch",
            "completion_time",
            "state",
            "version",
            "source",
            "volume_id",
            "owner",
            "release",
            "pkg_id",
            "id",
        ]
        statement = "INSERT INTO build (%s) VALUES (%s)" % (
            ", ".join(fields),
            ", ".join(["%%(%s)s" % field for field in fields]),
        )
        values = {
            "task_id": None,
            "extra": None,
            "start_time": "NOW",
            "epoch": "epoch",
            "completion_time": "NOW",
            "state": 1,
            "version": "version",
            "source": None,
            "volume_id": 0,
            "owner": 99,
            "release": "release",
            "pkg_id": mock.ANY,
            "id": mock.ANY,
        }
        _dml.assert_called_once_with(statement, values)