Пример #1
0
    def test_fulltext_whooshee_return_all_hits(self, f_users, f_db):
        # https://bugzilla.redhat.com/show_bug.cgi?id=1153039
        self.prefix = u"prefix"
        self.s_coprs = []

        u1_count = 150
        for x in range(u1_count):
            self.s_coprs.append(models.Copr(name=self.prefix + str(x), owner=self.u1))

        u2_count = 7
        for x in range(u2_count):
            self.s_coprs.append(models.Copr(name=self.prefix + str(x), owner=self.u2))

        u3_count = 9
        for x in range(u3_count):
            self.s_coprs.append(models.Copr(name=u"_wrong_" + str(x), owner=self.u3))

        self.db.session.add_all(self.s_coprs)
        self.db.session.commit()

        # query = CoprsLogic.get_multiple_fulltext("prefix")
        pre_query = models.Copr.query.join(models.User).filter(models.Copr.deleted == False)

        query = pre_query.whooshee_search(self.prefix)

        results = query.all()
        for obj in results:
            assert self.prefix in obj.name

        obtained = len(results)
        expected = u1_count + u2_count

        assert obtained == expected
Пример #2
0
    def f_coprs(self):
        self.c1 = models.Copr(name=u"foocopr", user=self.u1)
        self.c2 = models.Copr(name=u"foocopr", user=self.u2)
        self.c3 = models.Copr(name=u"barcopr", user=self.u2)

        self.basic_coprs_list = [self.c1, self.c2, self.c3]
        self.db.session.add_all(self.basic_coprs_list)
Пример #3
0
    def test_fulltext_whooshee_return_all_hits(self, f_users, f_db):
        # https://bugzilla.redhat.com/show_bug.cgi?id=1153039
        self.prefix = u"prefix"
        self.s_coprs = []

        u1_count = 150
        for x in range(u1_count):
            self.s_coprs.append(models.Copr(name=self.prefix + str(x), user=self.u1))

        u2_count = 7
        for x in range(u2_count):
            self.s_coprs.append(models.Copr(name=self.prefix + str(x), user=self.u2))

        u3_count = 9
        for x in range(u3_count):
            self.s_coprs.append(models.Copr(name=u"_wrong_" + str(x), user=self.u3))

        self.db.session.add_all(self.s_coprs)
        self.db.session.commit()

        # query = CoprsLogic.get_multiple_fulltext("prefix")
        pre_query = models.Copr.query.join(models.User).filter(models.Copr.deleted == False)

        query = pre_query.whooshee_search(self.prefix, whoosheer=CoprWhoosheer) # needs flask-whooshee-0.2.0

        results = query.all()
        for obj in results:
            assert self.prefix in obj.name

        obtained = len(results)
        expected = u1_count + u2_count

        expected = obtained = 0 # FIXME: test disabled to make this build (functionality is covered by regtests)
        assert obtained == expected
Пример #4
0
    def f_coprs(self):
        self.c1 = models.Copr(name=u"foocopr", user=self.u1, repos="")
        self.c2 = models.Copr(name=u"foocopr", user=self.u2, repos="")
        self.c3 = models.Copr(name=u"barcopr", user=self.u2, repos="")
        self.basic_coprs_list = [self.c1, self.c2, self.c3]
        self.db.session.add_all(self.basic_coprs_list)

        self.c1_dir = models.CoprDir(name=u"foocopr", copr=self.c1, main=True)
        self.c2_dir = models.CoprDir(name=u"foocopr", copr=self.c2, main=True)
        self.c3_dir = models.CoprDir(name=u"barcopr", copr=self.c3, main=True)
        self.basic_copr_dir_list = [self.c1_dir, self.c2_dir, self.c3_dir]
        self.db.session.add_all(self.basic_copr_dir_list)
Пример #5
0
    def test_delete_build_exceptions(self, f_users, f_coprs, f_mock_chroots,
                                     f_builds, f_db):
        for bc in self.b4_bc:
            bc.status = StatusEnum("succeeded")
            bc.ended_on = time.time()
        self.u1.admin = False

        self.db.session.add_all(self.b4_bc)
        self.db.session.add(self.b4)
        self.db.session.add(self.u1)
        self.db.session.commit()
        with pytest.raises(InsufficientRightsException):
            BuildsLogic.delete_build(self.u1, self.b4)

        self.b1_bc[0].status = StatusEnum("running")
        self.db.session.add(self.b1_bc[0])
        self.db.session.commit()
        with pytest.raises(ActionInProgressException):
            BuildsLogic.delete_build(self.u1, self.b1)

        self.copr_persistent = models.Copr(name=u"persistent_copr",
                                           user=self.u2,
                                           persistent=True)
        self.copr_dir = models.CoprDir(name="persistent_copr",
                                       main=True,
                                       copr=self.copr_persistent)
        self.build_persistent = models.Build(copr=self.copr_persistent,
                                             copr_dir=self.copr_dir,
                                             package=self.p2,
                                             user=self.u2,
                                             submitted_on=100)
        with pytest.raises(InsufficientRightsException):
            BuildsLogic.delete_build(self.u2, self.build_persistent)
Пример #6
0
    def test_regression_monitor_no_copr_returned(self, f_db, f_users,
                                                 f_mock_chroots):
        # https://bugzilla.redhat.com/show_bug.cgi?id=1165284

        # commit users to the database
        self.db.session.commit()
        copr_name = u"temp"

        # trying to get monitor page for non-existing project
        res = self.tc.get("/coprs/{}/{}/monitor/".format(
            self.u1.name, copr_name))
        assert res.status_code == 404

        tmp_copr = models.Copr(name=copr_name, owner=self.u1)
        cc = models.CoprChroot()
        cc.mock_chroot = self.mc1
        tmp_copr.copr_chroots.append(cc)

        self.db.session.add_all([tmp_copr, cc])
        self.db.session.commit()

        res = self.tc.get("/coprs/{}/{}/monitor/".format(
            self.u1.name, copr_name))
        assert res.status_code == 200

        self.db.session.add(CoprsLogic.delete_unsafe(self.u1, tmp_copr))
        self.db.session.commit()

        res = self.tc.get("/coprs/{}/{}/monitor/".format(
            self.u1.name, copr_name))
        assert res.status_code == 404
Пример #7
0
    def add(cls,
            user,
            name,
            selected_chroots,
            repos=None,
            description=None,
            instructions=None,
            check_for_duplicates=False,
            group=None,
            **kwargs):
        copr = models.Copr(name=name,
                           repos=repos or u"",
                           owner_id=user.id,
                           description=description or u"",
                           instructions=instructions or u"",
                           created_on=int(time.time()),
                           **kwargs)

        if group is not None:
            UsersLogic.raise_if_not_in_group(user, group)
            copr.group = group

        # form validation checks for duplicates
        CoprsLogic.new(user, copr, check_for_duplicates=check_for_duplicates)
        CoprChrootsLogic.new_from_names(copr, selected_chroots)

        db.session.flush()
        ActionsLogic.send_create_gpg_key(copr)

        return copr
Пример #8
0
    def test_search_basic(self, mc_render_template, f_users, f_db):
        # mc_flask.render_template.return_value = mock.MagicMock()
        # self.prefix = u"prefix_{}_".format(int(time.time()))
        self.prefix = u"prefix"
        self.s_coprs = []

        for x in range(5):
            self.s_coprs.append(models.Copr(name=self.prefix + str(x), user=self.u1))

        for x in range(7):
            self.s_coprs.append(models.Copr(name=self.prefix + str(x), user=self.u2))

        self.db.session.add_all(self.s_coprs)
        self.db.session.commit()

        mc_render_template.side_effect = lambda *args, **kwargs: flask.render_template(*args, **kwargs)
Пример #9
0
    def test_fulltext_whooshee_return_all_hits(self, f_users, f_db):
        # https://bugzilla.redhat.com/show_bug.cgi?id=1153039
        self.prefix = u"prefix"
        self.s_coprs = []

        index = Whooshee.get_or_create_index(app, CoprWhoosheer)
        writer = index.writer()

        u1_count = 150
        for x in range(u1_count):
            self.s_coprs.append(
                models.Copr(name=self.prefix + str(x), user=self.u1))

        u2_count = 7
        for x in range(u2_count):
            self.s_coprs.append(
                models.Copr(name=self.prefix + str(x), user=self.u2))

        u3_count = 9
        for x in range(u3_count):
            self.s_coprs.append(
                models.Copr(name=u"_wrong_" + str(x), user=self.u3))

        self.db.session.add_all(self.s_coprs)
        self.db.session.commit()

        for copr in self.s_coprs:
            CoprWhoosheer.insert_copr(writer, copr)
        writer.commit(optimize=True)

        query = CoprsLogic.get_multiple_fulltext("prefix")
        pre_query = models.Copr.query.order_by(desc(models.Copr.created_on))\
            .join(models.User).filter(models.Copr.deleted == False)

        query = pre_query.whooshee_search(
            self.prefix, whoosheer=CoprWhoosheer)  # needs flask-whooshee-0.2.0

        results = query.all()
        for obj in results:
            assert self.prefix in obj.name

        obtained = len(results)
        expected = u1_count + u2_count

        assert obtained == expected
Пример #10
0
    def add(cls,
            user,
            name,
            selected_chroots,
            repos=None,
            description=None,
            instructions=None,
            check_for_duplicates=False,
            group=None,
            persistent=False,
            auto_prune=True,
            use_bootstrap_container=False,
            follow_fedora_branching=False,
            **kwargs):

        if not user.admin and persistent:
            raise exceptions.NonAdminCannotCreatePersistentProject()

        if not user.admin and not auto_prune:
            raise exceptions.NonAdminCannotDisableAutoPrunning()

        # form validation checks for duplicates
        cls.new(user, name, group, check_for_duplicates=check_for_duplicates)

        copr = models.Copr(name=name,
                           repos=repos or u"",
                           user=user,
                           description=description or u"",
                           instructions=instructions or u"",
                           created_on=int(time.time()),
                           persistent=persistent,
                           auto_prune=auto_prune,
                           use_bootstrap_container=use_bootstrap_container,
                           follow_fedora_branching=follow_fedora_branching,
                           **kwargs)

        if group is not None:
            UsersLogic.raise_if_not_in_group(user, group)
            copr.group = group

        copr_dir = models.CoprDir(main=True, name=name, copr=copr)

        db.session.add(copr_dir)
        db.session.add(copr)

        CoprChrootsLogic.new_from_names(copr, selected_chroots)

        db.session.flush()
        ActionsLogic.send_create_gpg_key(copr)

        return copr
Пример #11
0
    def add(cls, user, name, repos, selected_chroots, description,
            instructions, check_for_duplicates=False, **kwargs):
        copr = models.Copr(name=name,
                           repos=repos,
                           owner=user,
                           description=description,
                           instructions=instructions,
                           created_on=int(time.time()),
                           **kwargs)

        # form validation checks for duplicates
        CoprsLogic.new(user, copr,
                       check_for_duplicates=check_for_duplicates)
        CoprChrootsLogic.new_from_names(user, copr,
                                        selected_chroots)
        return copr
Пример #12
0
    def f_coprs(self):
        self.c1 = models.Copr(name=u"foocopr", owner=self.u1)
        self.c2 = models.Copr(name=u"foocopr", owner=self.u2)
        self.c3 = models.Copr(name=u"barcopr", owner=self.u2)

        self.db.session.add_all([self.c1, self.c2, self.c3])