def test_positive_create_2(self, data): """@test: Create gpg key with valid name and valid gpg key via file import using the a new organization @feature: GPG Keys @assert: gpg key is created @BZ: 1172009 """ # Setup data to pass to the factory data = data.copy() data['key'] = VALID_GPG_KEY_FILE_PATH data['organization-id'] = self.org['id'] try: new_obj = make_gpg_key(data) except CLIFactoryError as err: self.fail(err) # Can we find the new object? result = GPGKey().exists({'organization-id': self.org['id']}, (self.search_key, new_obj[self.search_key])) self.assertEqual(result.return_code, 0, "Failed to create object") self.assertEqual(len(result.stderr), 0, "There should not be an exception here") self.assertEqual(new_obj[self.search_key], result.stdout[self.search_key])
def test_bugzilla_1108227(self): """@Test: Hammer fails to get a gpg info by name @Feature: GPG Keys @Assert: can get gpg key info by name @BZ: 1108227 """ # GPG Key data data = {'name': gen_string("alpha", 10)} data['organization-id'] = self.org['id'] # Setup a new key file data['key'] = VALID_GPG_KEY_FILE_PATH try: new_obj = make_gpg_key(data) except CLIFactoryError as err: self.fail(err) # Can we find the new object? result = GPGKey().info({ 'name': new_obj['name'], 'organization-id': self.org['id'], }) self.assertEqual(result.return_code, 0, "Failed to create object") self.assertEqual(len(result.stderr), 0, "There should not be an exception here") self.assertEqual(new_obj[self.search_key], result.stdout[self.search_key])
def test_redmine_4272(self): """@Test: gpg info should display key content @Feature: GPG Keys @Assert: gpg info should display key content @BZ: Redmine#4272 """ # GPG Key data data = {'name': gen_string("alpha", 10)} data['organization-id'] = self.org['id'] # Setup a new key file content = gen_alphanumeric() gpg_key = self.create_gpg_key_file(content=content) self.assertIsNotNone(gpg_key, 'GPG Key file must be created') data['key'] = gpg_key try: new_obj = make_gpg_key(data) except CLIFactoryError as err: self.fail(err) # Can we find the new object? result = GPGKey().info({'id': new_obj['id']}) self.assertEqual(result.return_code, 0, "Failed to get object information") self.assertEqual(len(result.stderr), 0, "There should not be an exception here") self.assertEqual(result.stdout['content'], content)
def test_redmine_4271(self): """@Test: cvs output for gpg subcommand doesn\'t work @Feature: GPG Keys @Assert: cvs output for gpg info works @BZ: Redmine#4271 """ # GPG Key data data = {'name': gen_string("alpha", 10)} data['organization-id'] = self.org['id'] # Setup a new key file data['key'] = VALID_GPG_KEY_FILE_PATH try: new_obj = make_gpg_key(data) except CLIFactoryError as err: self.fail(err) # Can we find the new object? result = GPGKey().info({'id': new_obj['id']}) self.assertEqual(result.return_code, 0, "Failed to get object information") self.assertEqual(len(result.stderr), 0, "There should not be an exception here") self.assertEqual(new_obj[self.search_key], result.stdout[self.search_key])
def test_negative_create_1(self, data): """@test: Create gpg key with valid name and valid gpg key via file import then try to create new one with same name @feature: GPG Keys @assert: gpg key is not created @BZ: 1172009 """ # Setup data to pass to the factory data = data.copy() data['organization-id'] = self.org['id'] try: new_obj = make_gpg_key(data) except CLIFactoryError as err: self.fail(err) # Can we find the new object? result = GPGKey().exists({'organization-id': self.org['id']}, (self.search_key, new_obj[self.search_key])) self.assertEqual(result.return_code, 0, "Failed to create object") self.assertEqual(len(result.stderr), 0, "There should not be an exception here") self.assertEqual(new_obj[self.search_key], result.stdout[self.search_key]) # Setup a new key file data['key'] = '/tmp/%s' % gen_alphanumeric() gpg_key = self.create_gpg_key_file() self.assertIsNotNone(gpg_key, 'GPG Key file must be created') ssh.upload_file(local_file=gpg_key, remote_file=data['key']) # Try to create a gpg key with the same name new_obj = GPGKey().create(data) self.assertNotEqual(new_obj.return_code, 0, "Object should not be created") self.assertGreater(len(new_obj.stderr), 0, "Should have raised an exception")
def test_negative_create_2(self, data): """ @test: Create gpg key with valid name and no gpg key @feature: GPG Keys @assert: gpg key is not created """ # Setup data to pass to create data = data.copy() data['organization-id'] = self.org['id'] # Try to create a new object passing @data to factory method new_obj = GPGKey().create(data) self.assertNotEqual(new_obj.return_code, 0, "Object should not be created") self.assertGreater(len(new_obj.stderr), 0, "Should have raised an exception")
def test_negative_create_3(self, data): """ @test: Create gpg key with invalid name and valid gpg key via file import @feature: GPG Keys @assert: gpg key is not created """ # Setup data to pass to create data = data.copy() data['key'] = '/tmp/%s' % generate_name() data['organization-id'] = self.org['id'] ssh.upload_file(local_file=VALID_GPG_KEY_FILE_PATH, remote_file=data['key']) # Try to create a new object passing @data to factory method new_obj = GPGKey().create(data) self.assertNotEqual(new_obj.return_code, 0, "Object should not be created") self.assertGreater(len(new_obj.stderr), 0, "Should have raised an exception")
class TestGPGKey(BaseCLI): """Tests for GPG Keys via Hammer CLI""" search_key = 'name' @classmethod def setUpClass(cls): """ Create a shared organization for all tests to avoid generating hundreds of organizations """ BaseCLI.setUpClass() cls.org = cls.create_org() @classmethod def create_org(cls): """Creates and returns an organization""" label = generate_name(6) org = make_org({'label': label}) result = Org.exists(tuple_search=('id', org['id'])) org.update(result.stdout) return org def create_gpg_key_file(self, content=None): """ Creates a fake GPG Key file and returns its path or None if an error happens. """ (file_handle, key_filename) = mkstemp(text=True) if not content: content = generate_name(minimum=20, maximum=50) with open(key_filename, "w") as gpg_key_file: gpg_key_file.write(content) return key_filename return None # Bug verification @redminebug('4271') def test_redmine_4271(self): """ @Test: cvs output for gpg subcommand doesn\'t work @Feature: GPG Keys @Assert: cvs output for gpg info works @BZ: Redmine#4271 """ # GPG Key data data = {'name': generate_string("alpha", 10)} data['organization-id'] = self.org['id'] # Setup a new key file data['key'] = VALID_GPG_KEY_FILE_PATH try: new_obj = make_gpg_key(data) except Exception, e: self.fail(e) # Can we find the new object? result = GPGKey().info({'id': new_obj['id']}) self.assertEqual(result.return_code, 0, "Failed to get object information") self.assertEqual(len(result.stderr), 0, "There should not be an exception here") self.assertEqual(new_obj[self.search_key], result.stdout[self.search_key])
# GPG Key data data = {'name': generate_string("alpha", 10)} data['organization-id'] = self.org['id'] # Setup a new key file content = generate_name() gpg_key = self.create_gpg_key_file(content=content) self.assertIsNotNone(gpg_key, 'GPG Key file must be created') data['key'] = gpg_key try: new_obj = make_gpg_key(data) except Exception, e: self.fail(e) # Can we find the new object? result = GPGKey().info({'id': new_obj['id']}) self.assertEqual(result.return_code, 0, "Failed to get object information") self.assertEqual(len(result.stderr), 0, "There should not be an exception here") self.assertEqual(result.stdout['content'], content) @redminebug('4480') def test_redmine_4480(self): """ @Test: Hammer fails to get a gpg info by name @Feature: GPG Keys @Assert: can get gpg key info by name @BZ: Redmine#4480 """