def test_positive_update_name(self):
        """Check if content host name can be updated

        @id: 056fff14-e9ea-407e-8340-1d5b5da1e4e4

        @Assert: Content host is created and name is updated

        @BZ: 1318686, 1338780
        """
        new_system = make_content_host({
            u'content-view-id':
            self.DEFAULT_CV['id'],
            u'lifecycle-environment-id':
            self.LIBRARY['id'],
            u'organization-id':
            self.NEW_ORG['id'],
        })
        for new_name in valid_hosts_list():
            with self.subTest(new_name):
                ContentHost.update({
                    u'id': new_system['id'],
                    u'new-name': new_name,
                })
                result = ContentHost.info({'id': new_system['id']})
                self.assertEqual(result['name'], new_name)
Exemple #2
0
    def test_positive_update_name_by_name(self):
        """A host can be updated with a new random name. Use name to
        access the host

        @feature: Hosts

        @assert: A host is updated and the name matches
        """
        for new_name in valid_hosts_list():
            with self.subTest(new_name):
                Host.update({
                    'name': self.host['name'],
                    'new-name': new_name,
                })
                self.host = Host.info({
                    'name': u'{0}.{1}'
                            .format(new_name, self.host['domain']).lower()
                })
                self.assertEqual(
                    u'{0}.{1}'.format(
                        new_name,
                        self.host['domain'],
                    ).lower(),
                    self.host['name'],
                )
Exemple #3
0
def test_positive_create_and_update_with_name():
    """Create and update a host with different names and minimal input parameters

    :id: a7c0e8ec-3816-4092-88b1-0324cb271752

    :expectedresults: A host is created and updated with expected name

    :CaseImportance: Critical
    """
    name = gen_choice(valid_hosts_list())
    host = entities.Host(name=name).create()
    assert host.name == f'{name}.{host.domain.read().name}'
    new_name = gen_choice(valid_hosts_list())
    host.name = new_name
    host = host.update(['name'])
    assert host.name == f'{new_name}.{host.domain.read().name}'
Exemple #4
0
    def test_positive_create_with_name(self):
        """A host can be created with a random name

        @feature: Hosts

        @assert: A host is created and the name matches
        """
        for name in valid_hosts_list():
            with self.subTest(name):
                host = entities.Host()
                host.create_missing()
                result = Host.create({
                    u'architecture-id': host.architecture.id,
                    u'domain-id': host.domain.id,
                    u'environment-id': host.environment.id,
                    # pylint:disable=no-member
                    u'location-id': host.location.id,
                    u'mac': host.mac,
                    u'medium-id': host.medium.id,
                    u'name': name,
                    u'operatingsystem-id': host.operatingsystem.id,
                    # pylint:disable=no-member
                    u'organization-id': host.organization.id,
                    u'partition-table-id': host.ptable.id,
                    u'puppet-proxy-id': self.puppet_proxy['id'],
                    u'root-pass': host.root_pass,
                })
                self.assertEqual(
                    '{0}.{1}'.format(name, host.domain.read().name).lower(),
                    result['name'],
                )
Exemple #5
0
    def test_positive_create_with_name(self):
        """A host can be created with a random name

        @id: 2e8dd25d-47ed-4131-bba6-1ff024808d05

        @assert: A host is created and the name matches
        """
        for name in valid_hosts_list():
            with self.subTest(name):
                host = entities.Host()
                host.create_missing()
                result = Host.create({
                    u'architecture-id': host.architecture.id,
                    u'domain-id': host.domain.id,
                    u'environment-id': host.environment.id,
                    # pylint:disable=no-member
                    u'location-id': host.location.id,
                    u'mac': host.mac,
                    u'medium-id': host.medium.id,
                    u'name': name,
                    u'operatingsystem-id': host.operatingsystem.id,
                    # pylint:disable=no-member
                    u'organization-id': host.organization.id,
                    u'partition-table-id': host.ptable.id,
                    u'puppet-proxy-id': self.puppet_proxy['id'],
                    u'root-pass': host.root_pass,
                })
                self.assertEqual(
                    '{0}.{1}'.format(name, host.domain.read().name),
                    result['name'],
                )
    def test_return_type(self):
        """This test validates return types for functions:

        1. :meth:`robottelo.datafactory.generate_strings_list`
        2. :meth:`robottelo.datafactory.invalid_emails_list`
        3. :meth:`robottelo.datafactory.invalid_names_list`
        4. :meth:`robottelo.datafactory.valid_data_list`
        5. :meth:`robottelo.datafactory.valid_emails_list`
        6. :meth:`robottelo.datafactory.valid_environments_list`
        7. :meth:`robottelo.datafactory.valid_hosts_list`
        8. :meth:`robottelo.datafactory.valid_hostgroups_list`
        9. :meth:`robottelo.datafactory.valid_labels_list`
        10. :meth:`robottelo.datafactory.valid_names_list`
        11. :meth:`robottelo.datafactory.valid_usernames_list`
        12. :meth:`robottelo.datafactory.invalid_id_list`

        """
        for item in itertools.chain(
                generate_strings_list(),
                invalid_emails_list(),
                invalid_names_list(),
                valid_data_list(),
                valid_emails_list(),
                valid_environments_list(),
                valid_hosts_list(),
                valid_hostgroups_list(),
                valid_labels_list(),
                valid_names_list(),
                valid_usernames_list(),):
            self.assertIsInstance(item, six.text_type)
        for item in invalid_id_list():
            if not (isinstance(item, (six.text_type, int)) or item is None):
                self.fail('Unexpected data type')
Exemple #7
0
 def test_filtered_datapoint_True(self):
     """Tests if run_one_datapoint=false returns all data points"""
     settings.run_one_datapoint = False
     self.assertEqual(len(generate_strings_list()), 7)
     self.assertEqual(len(invalid_emails_list()), 8)
     self.assertEqual(len(invalid_id_list()), 4)
     self.assertEqual(len(invalid_interfaces_list()), 8)
     self.assertEqual(len(invalid_names_list()), 7)
     self.assertEqual(len(invalid_values_list()), 10)
     self.assertEqual(len(invalid_usernames_list()), 4)
     self.assertEqual(len(valid_labels_list()), 2)
     self.assertEqual(len(valid_data_list()), 7)
     self.assertEqual(len(valid_emails_list()), 8)
     self.assertEqual(len(valid_environments_list()), 4)
     self.assertEqual(len(valid_hosts_list()), 3)
     self.assertEqual(len(valid_hostgroups_list()), 7)
     self.assertEqual(len(valid_interfaces_list()), 3)
     self.assertEqual(len(valid_names_list()), 15)
     self.assertEqual(len(valid_org_names_list()), 7)
     self.assertEqual(len(valid_usernames_list()), 6)
     with mock.patch('robottelo.datafactory.bz_bug_is_open',
                     return_value=True):
         self.assertEqual(len(valid_docker_repository_names()), 6)
     with mock.patch('robottelo.datafactory.bz_bug_is_open',
                     return_value=False):
         self.assertEqual(len(valid_docker_repository_names()), 7)
    def test_positive_update_name_by_name(self):
        """A host can be updated with a new random name. Use name to
        access the host

        @feature: Hosts

        @assert: A host is updated and the name matches
        """
        for new_name in valid_hosts_list():
            with self.subTest(new_name):
                Host.update({
                    'name': self.host['name'],
                    'new-name': new_name,
                })
                self.host = Host.info({
                    'name':
                    u'{0}.{1}'.format(new_name, self.host['domain']).lower()
                })
                self.assertEqual(
                    u'{0}.{1}'.format(
                        new_name,
                        self.host['domain'],
                    ).lower(),
                    self.host['name'],
                )
 def test_filtered_datapoint_True(self):
     """Tests if run_one_datapoint=false returns all data points"""
     settings.run_one_datapoint = False
     self.assertEqual(len(generate_strings_list()), 7)
     self.assertEqual(len(invalid_emails_list()), 8)
     self.assertEqual(len(invalid_id_list()), 4)
     self.assertEqual(len(invalid_interfaces_list()), 8)
     self.assertEqual(len(invalid_names_list()), 7)
     self.assertEqual(len(invalid_values_list()), 10)
     self.assertEqual(len(invalid_usernames_list()), 4)
     self.assertEqual(len(valid_labels_list()), 2)
     self.assertEqual(len(valid_data_list()), 7)
     self.assertEqual(len(valid_emails_list()), 8)
     self.assertEqual(len(valid_environments_list()), 4)
     self.assertEqual(len(valid_hosts_list()), 3)
     self.assertEqual(len(valid_hostgroups_list()), 7)
     self.assertEqual(len(valid_interfaces_list()), 3)
     self.assertEqual(len(valid_names_list()), 15)
     self.assertEqual(len(valid_org_names_list()), 7)
     self.assertEqual(len(valid_usernames_list()), 6)
     self.assertEqual(len((valid_cron_expressions())), 4)
     with mock.patch('robottelo.datafactory.bz_bug_is_open',
                     return_value=True):
         self.assertEqual(len(valid_docker_repository_names()), 6)
     with mock.patch('robottelo.datafactory.bz_bug_is_open',
                     return_value=False):
         self.assertEqual(len(valid_docker_repository_names()), 7)
 def test_filtered_datapoint(self, run_one_datapoint):
     """Tests if run_one_datapoint=false returns all data points"""
     if run_one_datapoint:
         assert len(datafactory.generate_strings_list()) == 1
         assert len(datafactory.invalid_emails_list()) == 1
         assert len(datafactory.invalid_environments_list()) == 1
         assert len(datafactory.invalid_id_list()) == 1
         assert len(datafactory.invalid_interfaces_list()) == 1
         assert len(datafactory.invalid_names_list()) == 1
         assert len(datafactory.invalid_values_list()) == 1
         assert len(datafactory.valid_data_list()) == 1
         assert len(datafactory.valid_docker_repository_names()) == 1
         assert len(datafactory.valid_emails_list()) == 1
         assert len(datafactory.valid_environments_list()) == 1
         assert len(datafactory.valid_hosts_list()) == 1
         assert len(datafactory.valid_hostgroups_list()) == 1
         assert len(datafactory.valid_interfaces_list()) == 1
         assert len(datafactory.valid_labels_list()) == 1
         assert len(datafactory.valid_names_list()) == 1
         assert len(datafactory.valid_org_names_list()) == 1
         assert len(datafactory.valid_usernames_list()) == 1
         assert len(datafactory.valid_cron_expressions()) == 1
     else:
         assert len(datafactory.generate_strings_list()) == 7
         assert len(datafactory.invalid_emails_list()) == 8
         assert len(datafactory.invalid_environments_list()) == 4
         assert len(datafactory.invalid_id_list()) == 4
         assert len(datafactory.invalid_interfaces_list()) == 8
         assert len(datafactory.invalid_names_list()) == 7
         assert len(datafactory.invalid_values_list()) == 10
         assert len(datafactory.invalid_usernames_list()) == 4
         assert len(datafactory.valid_labels_list()) == 2
         assert len(datafactory.valid_data_list()) == 7
         assert len(datafactory.valid_emails_list()) == 8
         assert len(datafactory.valid_environments_list()) == 4
         assert len(datafactory.valid_hosts_list()) == 3
         assert len(datafactory.valid_hostgroups_list()) == 7
         assert len(datafactory.valid_interfaces_list()) == 3
         assert len(datafactory.valid_names_list()) == 15
         assert len(datafactory.valid_org_names_list()) == 7
         assert len(datafactory.valid_usernames_list()) == 6
         assert len(datafactory.valid_cron_expressions()) == 4
         assert len(datafactory.valid_docker_repository_names()) == 7
Exemple #11
0
    def test_positive_host_hooks(self):
        """Create hooks to be executed on host create, update and destroy

        :id: 4fe35fda-1524-44f7-9221-96d1aeafc75c

        :Steps:
            1. Create hook directories with symlinks to logger script
            for subset of supported events: create, update, destroy
            2. Perform trigger actions (create, update and delete host)
            3. Observe custom logs created by hook script

        :expectedresults: hook scripts are executed at proper time
        """
        host_name = valid_hosts_list()[0]
        expected_msg = "Executed {0} hook on object {1}"

        # create hook destination directories with logger script
        create_event = "create"
        update_event = "update"
        destroy_event = "destroy"
        for event in [create_event, destroy_event, update_event]:
            hook_dir = "{0}/host/managed/{1}".format(HOOKS_DIR, event)
            ssh.command('''mkdir -p {}'''.format(hook_dir))
            ssh.command('''ln -sf {0} {1}/'''.format(self.script_path,
                                                     hook_dir))
        result = ssh.command("systemctl restart httpd")
        self.assertEqual(result.return_code, 0)

        # delete host, check logs for hook activity
        host = entities.Host(name=host_name).create()
        self.assertEqual(host.name, '{0}.{1}'.format(host_name,
                                                     host.domain.read().name))
        result = ssh.command('cat {}'.format(LOGS_DIR))
        self.assertEqual(result.return_code, 0)
        self.assertIn(expected_msg.format(create_event, host_name),
                      result.stdout[0])

        # update host, check logs for hook activity
        new_ip = gen_ipaddr()
        host.ip = new_ip
        host = host.update(['ip'])
        self.assertEqual(host.ip, new_ip)
        result = ssh.command('cat {}'.format(LOGS_DIR))
        self.assertEqual(result.return_code, 0)
        self.assertIn(expected_msg.format(update_event, host_name),
                      result.stdout[0])

        # delete host, check logs for hook activity
        host.delete()
        with self.assertRaises(HTTPError):
            host.read()
        result = ssh.command('cat {}'.format(LOGS_DIR))
        self.assertEqual(result.return_code, 0)
        self.assertIn(expected_msg.format(destroy_event, host_name),
                      result.stdout[0])
Exemple #12
0
    def test_positive_create_with_name(self):
        """Create a host with different names and minimal input parameters

        @id: a7c0e8ec-3816-4092-88b1-0324cb271752

        @assert: A host is created with expected name
        """
        for name in valid_hosts_list():
            with self.subTest(name):
                host = entities.Host(name=name).create()
                self.assertEqual(
                    host.name, '{0}.{1}'.format(name,
                                                host.domain.read().name))
Exemple #13
0
def test_positive_host_hooks(logger_hook, target_sat):
    """Create hooks to be executed on host create, update and destroy

    :id: 4fe35fda-1524-44f7-9221-96d1aeafc75c

    :Steps:
        1. Create hook directories with symlinks to logger script
        for subset of supported events: create, update, destroy
        2. Perform trigger actions (create, update and delete host)
        3. Observe custom logs created by hook script

    :expectedresults: hook scripts are executed at proper time
    """
    host_name = valid_hosts_list()[0]
    expected_msg = 'Executed {0} hook on object {1}'

    # create hook destination directories with logger script
    create_event = 'create'
    update_event = 'update'
    destroy_event = 'destroy'
    for event in [create_event, destroy_event, update_event]:
        hook_dir = f'{HOOKS_DIR}/host/managed/{event}'
        target_sat.execute(f'mkdir -p {hook_dir}')
        target_sat.execute(f'ln -sf {SCRIPT_PATH} {hook_dir}/')
    result = target_sat.execute('systemctl restart httpd')
    assert result.status == 0

    # delete host, check logs for hook activity
    host = target_sat.api.Host(name=host_name).create()
    assert host.name == f'{host_name}.{host.domain.read().name}'
    result = target_sat.execute(f'cat {LOGS_DIR}')
    assert result.status == 0
    assert expected_msg.format(create_event, host_name) in result.stdout

    # update host, check logs for hook activity
    new_ip = gen_ipaddr()
    host.ip = new_ip
    host = host.update(['ip'])
    assert host.ip == new_ip
    result = target_sat.execute(f'cat {LOGS_DIR}')
    assert result.status == 0
    assert expected_msg.format(update_event, host_name) in result.stdout

    # delete host, check logs for hook activity
    host.delete()
    with pytest.raises(HTTPError):
        host.read()
    result = target_sat.execute(f'cat {LOGS_DIR}')
    assert result.status == 0
    assert expected_msg.format(destroy_event, host_name) in result.stdout
Exemple #14
0
    def test_positive_host_hooks(self):
        """Create hooks to be executed on host create, update and destroy

        :id: 4fe35fda-1524-44f7-9221-96d1aeafc75c

        :Steps:
            1. Create hook directories with symlinks to logger script
            for subset of supported events: create, update, destroy
            2. Perform trigger actions (create, update and delete host)
            3. Observe custom logs created by hook script

        :expectedresults: hook scripts are executed at proper time
        """
        host_name = valid_hosts_list()[0]
        expected_msg = "Executed {0} hook on object {1}"

        # create hook destination directories with logger script
        create_event = "create"
        update_event = "update"
        destroy_event = "destroy"
        for event in [create_event, destroy_event, update_event]:
            hook_dir = "{0}/host/managed/{1}".format(HOOKS_DIR, event)
            ssh.command('''mkdir -p {}'''.format(hook_dir))
            ssh.command('''ln -sf {0} {1}/'''.format(self.script_path, hook_dir))
        result = ssh.command("systemctl restart httpd")
        self.assertEqual(result.return_code, 0)

        # delete host, check logs for hook activity
        host = entities.Host(name=host_name).create()
        self.assertEqual(host.name, '{0}.{1}'.format(host_name, host.domain.read().name))
        result = ssh.command('cat {}'.format(LOGS_DIR))
        self.assertEqual(result.return_code, 0)
        self.assertIn(expected_msg.format(create_event, host_name), result.stdout[0])

        # update host, check logs for hook activity
        new_ip = gen_ipaddr()
        host.ip = new_ip
        host = host.update(['ip'])
        self.assertEqual(host.ip, new_ip)
        result = ssh.command('cat {}'.format(LOGS_DIR))
        self.assertEqual(result.return_code, 0)
        self.assertIn(expected_msg.format(update_event, host_name), result.stdout[0])

        # delete host, check logs for hook activity
        host.delete()
        with self.assertRaises(HTTPError):
            host.read()
        result = ssh.command('cat {}'.format(LOGS_DIR))
        self.assertEqual(result.return_code, 0)
        self.assertIn(expected_msg.format(destroy_event, host_name), result.stdout[0])
Exemple #15
0
    def test_positive_create_with_name(self):
        """Create a host with different names and minimal input parameters

        @id: a7c0e8ec-3816-4092-88b1-0324cb271752

        @assert: A host is created with expected name
        """
        for name in valid_hosts_list():
            with self.subTest(name):
                host = entities.Host(name=name).create()
                self.assertEqual(
                    host.name,
                    '{0}.{1}'.format(name, host.domain.read().name)
                )
Exemple #16
0
    def test_positive_create_with_name(self):
        """Create a host with different names and minimal input parameters

        @feature: Hosts

        @assert: A host is created with expected name
        """
        for name in valid_hosts_list():
            with self.subTest(name):
                host = entities.Host(name=name).create()
                self.assertEqual(
                    host.name,
                    '{0}.{1}'.format(name, host.domain.read().name).lower()
                )
Exemple #17
0
    def test_positive_update_name(self):
        """Update a host with a new name

        @id: a82b606c-d683-44ba-9086-684396ef1c10

        @assert: A host is updated with expected name
        """
        host = entities.Host().create()
        for new_name in valid_hosts_list():
            with self.subTest(new_name):
                host.name = new_name
                host = host.update(['name'])
                self.assertEqual(
                    host.name, '{0}.{1}'.format(new_name,
                                                host.domain.read().name))
Exemple #18
0
    def test_positive_update_name(self):
        """Update a host with a new name

        @id: a82b606c-d683-44ba-9086-684396ef1c10

        @assert: A host is updated with expected name
        """
        host = entities.Host().create()
        for new_name in valid_hosts_list():
            with self.subTest(new_name):
                host.name = new_name
                host = host.update(['name'])
                self.assertEqual(
                    host.name,
                    '{0}.{1}'.format(new_name, host.domain.read().name)
                )
Exemple #19
0
    def test_positive_update_name(self):
        """Update a host with a new name

        @feature: Hosts

        @assert: A host is updated with expected name
        """
        host = entities.Host().create()
        for new_name in valid_hosts_list():
            with self.subTest(new_name):
                host.name = new_name
                host = host.update(['name'])
                self.assertEqual(
                    host.name,
                    '{0}.{1}'.format(new_name, host.domain.read().name).lower()
                )
Exemple #20
0
 def test_datacheck_False(self):
     """Tests if run_one_datapoint=True returns one data point"""
     settings.run_one_datapoint = True
     self.assertEqual(len(generate_strings_list()), 1)
     self.assertEqual(len(invalid_emails_list()), 1)
     self.assertEqual(len(invalid_id_list()), 1)
     self.assertEqual(len(invalid_names_list()), 1)
     self.assertEqual(len(invalid_values_list()), 1)
     self.assertEqual(len(valid_data_list()), 1)
     self.assertEqual(len(valid_emails_list()), 1)
     self.assertEqual(len(valid_environments_list()), 1)
     self.assertEqual(len(valid_hosts_list()), 1)
     self.assertEqual(len(valid_hostgroups_list()), 1)
     self.assertEqual(len(valid_labels_list()), 1)
     self.assertEqual(len(valid_names_list()), 1)
     self.assertEqual(len(valid_usernames_list()), 1)
Exemple #21
0
 def test_datacheck_True(self):
     """Tests if run_one_datapoint=false returns all data points"""
     settings.run_one_datapoint = False
     self.assertEqual(len(generate_strings_list()), 7)
     self.assertEqual(len(invalid_id_list()), 4)
     self.assertEqual(len(invalid_emails_list()), 10)
     self.assertEqual(len(invalid_names_list()), 7)
     self.assertEqual(len(invalid_values_list()), 10)
     self.assertEqual(len(valid_labels_list()), 2)
     self.assertEqual(len(valid_data_list()), 7)
     self.assertEqual(len(valid_emails_list()), 8)
     self.assertEqual(len(valid_environments_list()), 3)
     self.assertEqual(len(valid_hosts_list()), 3)
     self.assertEqual(len(valid_hostgroups_list()), 7)
     self.assertEqual(len(valid_names_list()), 15)
     self.assertEqual(len(valid_usernames_list()), 4)
    def test_return_type(self):
        """This test validates return types for functions:

        1. :meth:`robottelo.datafactory.generate_strings_list`
        2. :meth:`robottelo.datafactory.invalid_emails_list`
        3. :meth:`robottelo.datafactory.invalid_names_list`
        4. :meth:`robottelo.datafactory.valid_data_list`
        5. :meth:`robottelo.datafactory.valid_docker_repository_names`
        6. :meth:`robottelo.datafactory.valid_emails_list`
        7. :meth:`robottelo.datafactory.valid_environments_list`
        8. :meth:`robottelo.datafactory.valid_hosts_list`
        9. :meth:`robottelo.datafactory.valid_hostgroups_list`
        10. :meth:`robottelo.datafactory.valid_labels_list`
        11. :meth:`robottelo.datafactory.valid_names_list`
        12. :meth:`robottelo.datafactory.valid_org_names_list`
        13. :meth:`robottelo.datafactory.valid_usernames_list`
        14. :meth:`robottelo.datafactory.invalid_id_list`
        15. :meth:`robottelo.datafactory.invalid_interfaces_list`
        16. :meth:`robottelo.datafactory.valid_interfaces_list`
        17. :meth:`robottelo.datafactory.valid_cron_expressions`

        """
        with mock.patch('robottelo.datafactory.bz_bug_is_open',
                        return_value=False):
            for item in itertools.chain(
                    generate_strings_list(),
                    invalid_emails_list(),
                    invalid_interfaces_list(),
                    invalid_names_list(),
                    valid_data_list(),
                    valid_docker_repository_names(),
                    valid_emails_list(),
                    valid_environments_list(),
                    valid_hosts_list(),
                    valid_hostgroups_list(),
                    valid_interfaces_list(),
                    valid_labels_list(),
                    valid_names_list(),
                    valid_org_names_list(),
                    valid_cron_expressions(),
                    valid_usernames_list()):
                self.assertIsInstance(item, six.text_type)
            for item in invalid_id_list():
                if not (
                        isinstance(item, (six.text_type, int)) or item is None
                        ):
                    self.fail('Unexpected data type')
    def test_positive_create_with_name(self):
        """Check if content host can be created with random names

        @id: ad2b1b03-68a1-49c8-9523-4164fcd7ee14

        @Assert: Content host is created and has random name
        """
        for name in valid_hosts_list():
            with self.subTest(name):
                new_system = make_content_host({
                    u'content-view-id': self.DEFAULT_CV['id'],
                    u'lifecycle-environment-id': self.LIBRARY['id'],
                    u'name': name,
                    u'organization-id': self.NEW_ORG['id'],
                })
            # Assert that name matches data passed
            self.assertEqual(new_system['name'], name)
 def test_filtered_datapoint_False(self):
     """Tests if run_one_datapoint=True returns one data point"""
     settings.run_one_datapoint = True
     self.assertEqual(len(generate_strings_list()), 1)
     self.assertEqual(len(invalid_emails_list()), 1)
     self.assertEqual(len(invalid_id_list()), 1)
     self.assertEqual(len(invalid_names_list()), 1)
     self.assertEqual(len(invalid_values_list()), 1)
     self.assertEqual(len(valid_data_list()), 1)
     self.assertEqual(len(valid_emails_list()), 1)
     self.assertEqual(len(valid_environments_list()), 1)
     self.assertEqual(len(valid_hosts_list()), 1)
     self.assertEqual(len(valid_hostgroups_list()), 1)
     self.assertEqual(len(valid_labels_list()), 1)
     self.assertEqual(len(valid_names_list()), 1)
     self.assertEqual(len(valid_org_names_list()), 1)
     self.assertEqual(len(valid_usernames_list()), 1)
    def test_return_type(self):
        """This test validates return types for functions:

        1. :meth:`robottelo.datafactory.generate_strings_list`
        2. :meth:`robottelo.datafactory.invalid_emails_list`
        3. :meth:`robottelo.datafactory.invalid_environments_list`
        4. :meth:`robottelo.datafactory.invalid_names_list`
        5. :meth:`robottelo.datafactory.valid_data_list`
        6. :meth:`robottelo.datafactory.valid_docker_repository_names`
        7. :meth:`robottelo.datafactory.valid_emails_list`
        8. :meth:`robottelo.datafactory.valid_environments_list`
        9. :meth:`robottelo.datafactory.valid_hosts_list`
        10. :meth:`robottelo.datafactory.valid_hostgroups_list`
        11. :meth:`robottelo.datafactory.valid_labels_list`
        12. :meth:`robottelo.datafactory.valid_names_list`
        13. :meth:`robottelo.datafactory.valid_org_names_list`
        14. :meth:`robottelo.datafactory.valid_usernames_list`
        15. :meth:`robottelo.datafactory.invalid_id_list`
        16. :meth:`robottelo.datafactory.invalid_interfaces_list`
        17. :meth:`robottelo.datafactory.valid_interfaces_list`
        18. :meth:`robottelo.datafactory.valid_cron_expressions`

        """
        for item in itertools.chain(
                datafactory.generate_strings_list(),
                datafactory.invalid_emails_list(),
                datafactory.invalid_environments_list(),
                datafactory.invalid_interfaces_list(),
                datafactory.invalid_names_list(),
                datafactory.valid_data_list(),
                datafactory.valid_docker_repository_names(),
                datafactory.valid_emails_list(),
                datafactory.valid_environments_list(),
                datafactory.valid_hosts_list(),
                datafactory.valid_hostgroups_list(),
                datafactory.valid_interfaces_list(),
                datafactory.valid_labels_list(),
                datafactory.valid_names_list(),
                datafactory.valid_org_names_list(),
                datafactory.valid_cron_expressions(),
                datafactory.valid_usernames_list(),
        ):
            assert isinstance(item, str)
        for item in datafactory.invalid_id_list():
            if not (isinstance(item, (str, int)) or item is None):
                pytest.fail('Unexpected data type')
 def test_filtered_datapoint_True(self):
     """Tests if run_one_datapoint=false returns all data points"""
     settings.run_one_datapoint = False
     self.assertEqual(len(generate_strings_list()), 7)
     self.assertEqual(len(invalid_id_list()), 4)
     self.assertEqual(len(invalid_emails_list()), 10)
     self.assertEqual(len(invalid_names_list()), 7)
     self.assertEqual(len(invalid_values_list()), 10)
     self.assertEqual(len(invalid_usernames_list()), 4)
     self.assertEqual(len(valid_labels_list()), 2)
     self.assertEqual(len(valid_data_list()), 7)
     self.assertEqual(len(valid_emails_list()), 8)
     self.assertEqual(len(valid_environments_list()), 3)
     self.assertEqual(len(valid_hosts_list()), 3)
     self.assertEqual(len(valid_hostgroups_list()), 7)
     self.assertEqual(len(valid_names_list()), 15)
     self.assertEqual(len(valid_org_names_list()), 7)
     self.assertEqual(len(valid_usernames_list()), 6)
    def test_positive_delete_by_name(self):
        """Check if content host can be created and deleted by passing its name

        @id: 22f1206c-b712-45e9-8e65-3a0a225d6188

        @Assert: Content host is created and then deleted
        """
        for name in valid_hosts_list():
            with self.subTest(name):
                content_host = make_content_host({
                    u'content-view-id': self.DEFAULT_CV['id'],
                    u'lifecycle-environment-id': self.LIBRARY['id'],
                    u'name': name,
                    u'organization-id': self.NEW_ORG['id'],
                })
                ContentHost.delete({u'host': content_host['name']})
                with self.assertRaises(CLIReturnCodeError):
                    ContentHost.info({'id': content_host['id']})
Exemple #28
0
    def test_positive_bulk_destroy(self, module_org):
        """Destroy multiple hosts make sure that hosts were removed,
        or were not removed when host is excluded from the list.

        :id: 06d63376-8bf6-11eb-ab9f-98fa9b6ecd5a

        :expectedresults: Included list of hosts,
            that are not part of excluded list of host, are removed.

        :CaseImportance: Medium
        """

        host_ids = []
        for _ in range(3):
            name = gen_choice(valid_hosts_list())
            host = entities.Host(name=name, organization=module_org).create()
            host_ids.append(host.id)

        entities.Host().bulk_destroy(
            data={
                'organization_id': module_org.id,
                'included': {
                    'ids': host_ids
                },
                'excluded': {
                    'ids': host_ids[:-1]
                },
            })
        for host_id in host_ids[:-1]:
            result = entities.Host(id=host_id).read()
            assert result.id == host_id

        with pytest.raises(HTTPError):
            entities.Host(id=host_ids[-1]).read()

        entities.Host().bulk_destroy(data={
            'organization_id': module_org.id,
            'included': {
                'ids': host_ids[:-1]
            }
        })
        for host_id in host_ids[:-1]:
            with pytest.raises(HTTPError):
                entities.Host(id=host_id).read()
Exemple #29
0
    def test_positive_update_name_by_id(self):
        """A host can be updated with a new random name. Use id to
        access the host

        @id: 058dbcbf-d543-483d-b755-be0602588464

        @assert: A host is updated and the name matches
        """
        for new_name in valid_hosts_list():
            with self.subTest(new_name):
                Host.update({
                    'id': self.host['id'],
                    'new-name': new_name,
                })
                self.host = Host.info({'id': self.host['id']})
                self.assertEqual(
                    u'{0}.{1}'.format(new_name,
                                      self.host['network']['domain']),
                    self.host['name'])
 def test_filtered_datapoint_False(self):
     """Tests if run_one_datapoint=True returns one data point"""
     settings.run_one_datapoint = True
     self.assertEqual(len(generate_strings_list()), 1)
     self.assertEqual(len(invalid_emails_list()), 1)
     self.assertEqual(len(invalid_id_list()), 1)
     self.assertEqual(len(invalid_interfaces_list()), 1)
     self.assertEqual(len(invalid_names_list()), 1)
     self.assertEqual(len(invalid_values_list()), 1)
     self.assertEqual(len(valid_data_list()), 1)
     self.assertEqual(len(valid_docker_repository_names()), 1)
     self.assertEqual(len(valid_emails_list()), 1)
     self.assertEqual(len(valid_environments_list()), 1)
     self.assertEqual(len(valid_hosts_list()), 1)
     self.assertEqual(len(valid_hostgroups_list()), 1)
     self.assertEqual(len(valid_interfaces_list()), 1)
     self.assertEqual(len(valid_labels_list()), 1)
     self.assertEqual(len(valid_names_list()), 1)
     self.assertEqual(len(valid_org_names_list()), 1)
     self.assertEqual(len(valid_usernames_list()), 1)
Exemple #31
0
    def test_positive_update_name_by_id(self):
        """A host can be updated with a new random name. Use id to
        access the host

        @id: 058dbcbf-d543-483d-b755-be0602588464

        @assert: A host is updated and the name matches
        """
        for new_name in valid_hosts_list():
            with self.subTest(new_name):
                Host.update({
                    'id': self.host['id'],
                    'new-name': new_name,
                })
                self.host = Host.info({'id': self.host['id']})
                self.assertEqual(
                    u'{0}.{1}'.format(
                        new_name, self.host['network']['domain']),
                    self.host['name']
                )
    def test_positive_delete_by_id(self):
        """Check if content host can be created and deleted by passing its ID

        @id: 1aa55e52-a97e-4c11-aab1-244bd4de0dd3

        @Assert: Content host is created and then deleted

        @BZ: 1328202
        """
        for name in valid_hosts_list():
            with self.subTest(name):
                content_host = make_content_host({
                    u'content-view-id': self.DEFAULT_CV['id'],
                    u'lifecycle-environment-id': self.LIBRARY['id'],
                    u'name': name,
                    u'organization-id': self.NEW_ORG['id'],
                })
                ContentHost.delete({u'host-id': content_host['id']})
                with self.assertRaises(CLIReturnCodeError):
                    ContentHost.info({'id': content_host['id']})
    def test_positive_create_with_name(self):
        """Check if content host can be created with random names

        @id: ad2b1b03-68a1-49c8-9523-4164fcd7ee14

        @Assert: Content host is created and has random name
        """
        for name in valid_hosts_list():
            with self.subTest(name):
                new_system = make_content_host({
                    u'content-view-id':
                    self.DEFAULT_CV['id'],
                    u'lifecycle-environment-id':
                    self.LIBRARY['id'],
                    u'name':
                    name,
                    u'organization-id':
                    self.NEW_ORG['id'],
                })
            # Assert that name matches data passed
            self.assertEqual(new_system['name'], name)
Exemple #34
0
    def test_positive_update_name_by_name(self):
        """A host can be updated with a new random name. Use name to
        access the host

        @id: f95a5952-17bd-49da-b2a7-c79f0614f1c7

        @assert: A host is updated and the name matches
        """
        for new_name in valid_hosts_list():
            with self.subTest(new_name):
                Host.update({
                    'name': self.host['name'],
                    'new-name': new_name,
                })
                self.host = Host.info({
                    'name': u'{0}.{1}'.format(
                        new_name, self.host['network']['domain'])})
                self.assertEqual(
                    u'{0}.{1}'.format(
                        new_name, self.host['network']['domain']),
                    self.host['name'],
                )
    def test_positive_update_name(self):
        """Check if content host name can be updated

        @id: 056fff14-e9ea-407e-8340-1d5b5da1e4e4

        @Assert: Content host is created and name is updated

        @BZ: 1318686, 1338780
        """
        new_system = make_content_host({
            u'content-view-id': self.DEFAULT_CV['id'],
            u'lifecycle-environment-id': self.LIBRARY['id'],
            u'organization-id': self.NEW_ORG['id'],
        })
        for new_name in valid_hosts_list():
            with self.subTest(new_name):
                ContentHost.update({
                    u'id': new_system['id'],
                    u'new-name': new_name,
                })
                result = ContentHost.info({'id': new_system['id']})
                self.assertEqual(result['name'], new_name)
    def test_positive_delete_by_name(self):
        """Check if content host can be created and deleted by passing its name

        @id: 22f1206c-b712-45e9-8e65-3a0a225d6188

        @Assert: Content host is created and then deleted
        """
        for name in valid_hosts_list():
            with self.subTest(name):
                content_host = make_content_host({
                    u'content-view-id':
                    self.DEFAULT_CV['id'],
                    u'lifecycle-environment-id':
                    self.LIBRARY['id'],
                    u'name':
                    name,
                    u'organization-id':
                    self.NEW_ORG['id'],
                })
                ContentHost.delete({u'host': content_host['name']})
                with self.assertRaises(CLIReturnCodeError):
                    ContentHost.info({'id': content_host['id']})
Exemple #37
0
    def test_positive_update_name_by_name(self):
        """A host can be updated with a new random name. Use name to
        access the host

        @id: f95a5952-17bd-49da-b2a7-c79f0614f1c7

        @assert: A host is updated and the name matches
        """
        for new_name in valid_hosts_list():
            with self.subTest(new_name):
                Host.update({
                    'name': self.host['name'],
                    'new-name': new_name,
                })
                self.host = Host.info({
                    'name': u'{0}.{1}'.format(
                        new_name, self.host['network']['domain'])})
                self.assertEqual(
                    u'{0}.{1}'.format(
                        new_name, self.host['network']['domain']),
                    self.host['name'],
                )
    def test_return_type(self):
        """This test validates return types for functions:

        1. :meth:`robottelo.datafactory.generate_strings_list`
        2. :meth:`robottelo.datafactory.invalid_emails_list`
        3. :meth:`robottelo.datafactory.invalid_names_list`
        4. :meth:`robottelo.datafactory.valid_data_list`
        5. :meth:`robottelo.datafactory.valid_emails_list`
        6. :meth:`robottelo.datafactory.valid_environments_list`
        7. :meth:`robottelo.datafactory.valid_hosts_list`
        8. :meth:`robottelo.datafactory.valid_hostgroups_list`
        9. :meth:`robottelo.datafactory.valid_labels_list`
        10. :meth:`robottelo.datafactory.valid_names_list`
        11. :meth:`robottelo.datafactory.valid_org_names_list`
        12. :meth:`robottelo.datafactory.valid_usernames_list`
        13. :meth:`robottelo.datafactory.invalid_id_list`
        14. :meth:`robottelo.datafactory.invalid_interfaces_list`
        15. :meth:`robottelo.datafactory.valid_interfaces_list`

        """
        for item in itertools.chain(generate_strings_list(),
                                    invalid_emails_list(),
                                    invalid_interfaces_list(),
                                    invalid_names_list(), valid_data_list(),
                                    valid_emails_list(),
                                    valid_environments_list(),
                                    valid_hosts_list(),
                                    valid_hostgroups_list(),
                                    valid_interfaces_list(),
                                    valid_labels_list(), valid_names_list(),
                                    valid_org_names_list(),
                                    valid_usernames_list()):
            self.assertIsInstance(item, six.text_type)
        for item in invalid_id_list():
            if not (isinstance(item, (six.text_type, int)) or item is None):
                self.fail('Unexpected data type')
    def test_positive_delete_by_id(self):
        """Check if content host can be created and deleted by passing its ID

        @id: 1aa55e52-a97e-4c11-aab1-244bd4de0dd3

        @Assert: Content host is created and then deleted

        @BZ: 1328202
        """
        for name in valid_hosts_list():
            with self.subTest(name):
                content_host = make_content_host({
                    u'content-view-id':
                    self.DEFAULT_CV['id'],
                    u'lifecycle-environment-id':
                    self.LIBRARY['id'],
                    u'name':
                    name,
                    u'organization-id':
                    self.NEW_ORG['id'],
                })
                ContentHost.delete({u'host-id': content_host['id']})
                with self.assertRaises(CLIReturnCodeError):
                    ContentHost.info({'id': content_host['id']})