def test_cannot_change_tag_name_to_an_existing_tag(self):
     with session.begin():
         existing_tag = data_setup.create_retention_tag()
         tag_to_edit = data_setup.create_retention_tag()
     b = self.browser
     login(b)
     b.get(get_server_base() + 'retentiontag/admin')
     b.find_element_by_link_text(tag_to_edit.tag).click()
     b.find_element_by_name('tag').clear()
     b.find_element_by_name('tag').send_keys(existing_tag.tag)
     b.find_element_by_id('Retention Tag').submit()
     b.find_element_by_xpath('//div[@class="control-group error" and .//input[@name="tag"]]'
             '//span[string(.)="Retention tag already exists"]')
 def test_record_retention_tag(self):
     with session.begin():
         rt = data_setup.create_retention_tag()
     out = run_client(['bkr', 'job-modify', self.job.t_id,  '--retention-tag', '%s' % rt.tag])
     self.assertEquals(self.job.activity[0].action, u'Changed')
     self.assertEquals(self.job.activity[0].field_name, 'Retention Tag')
     self.assertEquals(self.job.activity[0].old_value, self.job.retention_tag.tag)
     self.assertEquals(self.job.activity[0].new_value, rt.tag)
Beispiel #3
0
 def test_record_retention_tag(self):
     with session.begin():
         rt = data_setup.create_retention_tag()
     out = run_client(['bkr', 'job-modify', self.job.t_id,  '--retention-tag', '%s' % rt.tag])
     self.assertEquals(self.job.activity[0].action, u'Changed')
     self.assertEquals(self.job.activity[0].field_name, 'Retention Tag')
     self.assertEquals(self.job.activity[0].old_value, self.job.retention_tag.tag)
     self.assertEquals(self.job.activity[0].new_value, rt.tag)
    def test_tag_delete(self):
        with session.begin():
            default_tag = data_setup.create_retention_tag(default=True)
            tag_with_job = data_setup.create_retention_tag(default=False)
            new_job = data_setup.create_job()
            new_job.retention_tag = tag_with_job
            non_default_tag = data_setup.create_retention_tag(default=False)
        b = self.browser
        login(b)
        b.get(get_server_base() + 'retentiontag/delete/%s' % default_tag.id)
        self.assertEquals(b.find_element_by_class_name('flash').text,
                '%s is not applicable for deletion' % default_tag.tag)

        b.get(get_server_base() + 'retentiontag/delete/%s' % tag_with_job.id)
        self.assertEquals(b.find_element_by_class_name('flash').text,
                '%s is not applicable for deletion' % tag_with_job.tag)

        b.get(get_server_base() + 'retentiontag/delete/%s' % non_default_tag.id)
        self.assertEquals(b.find_element_by_class_name('flash').text,
                'Successfully deleted %s' % non_default_tag.tag)
 def test_add_duplicate_tag(self):
     with session.begin():
         existing_tag = data_setup.create_retention_tag()
     b = self.browser
     login(b)
     b.get(get_server_base() + 'retentiontag/admin')
     b.find_element_by_link_text('Add').click()
     b.find_element_by_name('tag').send_keys(existing_tag.tag)
     Select(b.find_element_by_name('default')).select_by_visible_text('False')
     b.find_element_by_id('Retention Tag').submit()
     b.find_element_by_xpath('//div[@class="control-group error" and .//input[@name="tag"]]'
             '//span[string(.)="Retention tag already exists"]')
 def test_retention_tag_product(self):
     with session.begin():
         rt1 = data_setup.create_retention_tag()
         rt2 = data_setup.create_retention_tag(needs_product=True)
         p1 = data_setup.create_product()
     out = run_client(['bkr', 'job-modify', self.job.t_id,  '--retention-tag', '%s' % rt1.tag])
     self.assert_(out == 'Successfully modified jobs %s\n' % self.job.t_id)
     session.expunge_all()
     j = TaskBase.get_by_t_id(self.job.t_id)
     self.assert_(j.retention_tag.tag == rt1.tag)
     out = run_client(['bkr', 'job-modify', self.job.t_id, '--retention-tag', '%s' % rt2.tag, '--product', '%s' % p1.name])
     self.assert_(out == 'Successfully modified jobs %s\n' % self.job.t_id)
     session.expunge_all()
     j = TaskBase.get_by_t_id(self.job.t_id)
     self.assert_(j.retention_tag.tag == rt2.tag)
     self.assert_(j.product.name == p1.name)
     out = run_client(['bkr', 'job-modify', self.job.t_id, '--retention-tag', '%s' % rt1.tag, '--product='])
     self.assert_(out == 'Successfully modified jobs %s\n' % self.job.t_id)
     session.expunge_all()
     j = TaskBase.get_by_t_id(self.job.t_id)
     self.assert_(j.retention_tag.tag == rt1.tag)
     self.assert_(j.product is None)
Beispiel #7
0
 def test_retention_tag_product(self):
     with session.begin():
         rt1 = data_setup.create_retention_tag()
         rt2 = data_setup.create_retention_tag(needs_product=True)
         p1 = data_setup.create_product()
     out = run_client(['bkr', 'job-modify', self.job.t_id,  '--retention-tag', '%s' % rt1.tag])
     self.assert_(out == 'Successfully modified jobs %s\n' % self.job.t_id)
     session.expunge_all()
     j = TaskBase.get_by_t_id(self.job.t_id)
     self.assert_(j.retention_tag.tag == rt1.tag)
     out = run_client(['bkr', 'job-modify', self.job.t_id, '--retention-tag', '%s' % rt2.tag, '--product', '%s' % p1.name])
     self.assert_(out == 'Successfully modified jobs %s\n' % self.job.t_id)
     session.expunge_all()
     j = TaskBase.get_by_t_id(self.job.t_id)
     self.assert_(j.retention_tag.tag == rt2.tag)
     self.assert_(j.product.name == p1.name)
     out = run_client(['bkr', 'job-modify', self.job.t_id, '--retention-tag', '%s' % rt1.tag, '--product='])
     self.assert_(out == 'Successfully modified jobs %s\n' % self.job.t_id)
     session.expunge_all()
     j = TaskBase.get_by_t_id(self.job.t_id)
     self.assert_(j.retention_tag.tag == rt1.tag)
     self.assert_(j.product is None)
 def test_rename(self):
     with session.begin():
         tag = data_setup.create_retention_tag()
     b = self.browser
     login(b)
     b.get(get_server_base() + 'retentiontag/admin')
     b.find_element_by_link_text(tag.tag).click()
     b.find_element_by_name('tag').clear()
     b.find_element_by_name('tag').send_keys('pink-fluffy-unicorns')
     b.find_element_by_id('Retention Tag').submit()
     self.assertEquals(b.find_element_by_class_name('flash').text, 'OK')
     with session.begin():
         session.refresh(tag)
         self.assertEquals(tag.tag, u'pink-fluffy-unicorns')
Beispiel #9
0
    def test_tag_delete(self):
        with session.begin():
            default_tag = data_setup.create_retention_tag(default=True)
            tag_with_job = data_setup.create_retention_tag(default=False)
            new_job = data_setup.create_job()
            new_job.retention_tag = tag_with_job
            non_default_tag = data_setup.create_retention_tag(default=False)
        try:
            self.login()
        except:
            pass
        sel = self.selenium
        sel.open("retentiontag/delete/%s" % default_tag.id)
        sel.wait_for_page_to_load("30000")
        self.failUnless(sel.is_text_present("%s is not applicable for deletion" % default_tag.tag))

        sel.open("retentiontag/delete/%s" % tag_with_job.id)
        sel.wait_for_page_to_load("30000")
        self.failUnless(sel.is_text_present("%s is not applicable for deletion" % tag_with_job.tag))

        sel.open("retentiontag/delete/%s" % non_default_tag.id)
        sel.wait_for_page_to_load("30000")
        self.failUnless(sel.is_text_present("Succesfully deleted %s" % non_default_tag.tag))
Beispiel #10
0
    def test_delete_job_with_admin(self):
        with session.begin():
            other_user = data_setup.create_user(password=u'asdf')
            tag = data_setup.create_retention_tag(name=u'myblahtag')
            job1 = data_setup.create_completed_job(owner=other_user)
            job2 = data_setup.create_completed_job(owner=other_user, \
                                                   retention_tag=tag)

        # As the default admin user
        # Admin can delete other's job with job ID
        out = run_client(['bkr', 'job-delete', job1.t_id])
        self.assert_(out.startswith('Jobs deleted:'), out)
        self.assert_(job1.t_id in out, out)

        # Admin can not delete other's job with tags
        out = run_client(['bkr', 'job-delete', '-t%s' % tag.tag])
        self.assert_(out.startswith('Jobs deleted:'), out)
        self.assert_(job2.t_id not in out, out)
Beispiel #11
0
    def test_delete_job_with_admin(self):
        with session.begin():
            other_user = data_setup.create_user(password=u'asdf')
            tag = data_setup.create_retention_tag(name=u'myblahtag')
            job1 = data_setup.create_completed_job(owner=other_user)
            job2 = data_setup.create_completed_job(owner=other_user, \
                                                   retention_tag=tag)

        # As the default admin user
        # Admin can delete other's job with job ID
        out = run_client(['bkr', 'job-delete', job1.t_id])
        self.assert_(out.startswith('Jobs deleted:'), out)
        self.assert_(job1.t_id in out, out)

        # Admin can not delete other's job with tags
        out = run_client(['bkr', 'job-delete', '-t%s' % tag.tag])
        self.assert_(out.startswith('Jobs deleted:'), out)
        self.assert_(job2.t_id not in out, out)
 def test_edit(self):
     with session.begin():
         tag = data_setup.create_retention_tag()
         tag.expire_in_days = 30
         tag.needs_product = True
     b = self.browser
     login(b)
     b.get(get_server_base() + 'retentiontag/admin')
     b.find_element_by_link_text(tag.tag).click()
     b.find_element_by_name('expire_in_days').clear()
     b.find_element_by_name('expire_in_days').send_keys('60')
     self.assertTrue(b.find_element_by_name('needs_product').is_selected())
     b.find_element_by_name('needs_product').click()
     b.find_element_by_id('Retention Tag').submit()
     self.assertEquals(b.find_element_by_class_name('flash').text, 'OK')
     with session.begin():
         session.refresh(tag)
         self.assertEquals(tag.expire_in_days, 60)
         self.assertEquals(tag.needs_product, False)