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