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
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)
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
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)
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)
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
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
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)
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
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
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
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])