'This test checks instance pagination and filtration
Steps:
1) Login to Horizon Dashboard as regular user
2) Go to to user settings page
3) Change \'Items Per Page\' value to 1
4) Go to Project > Compute > Instances page
5) Create 2 instances
6) Go to appropriate page (depends on user)
7) Check filter by Name of the first and the second instance in order
to have one instance in the list (and it should have correct name)
and no \'Next\' link is available
8) Check filter by common part of Name of in order to have one instance
in the list (and it should have correct name) and \'Next\' link is
available on the first page and is not available on the second page
9) Go to user settings page and restore \'Items Per Page\'
10) Delete created instances via proper page (depends on user)'

def test_instances_pagination_and_filtration(self):

    items_per_page = 1
    instance_count = 2
    instance_list = ['{0}-{1}'.format(self.INSTANCE_NAME, item) for item in range(1, (instance_count + 1))]
    first_page_definition = {'Next': True, 'Prev': False, 'Count': items_per_page, 'Names': [instance_list[1]]}
    second_page_definition = {'Next': False, 'Prev': False, 'Count': items_per_page, 'Names': [instance_list[0]]}
    filter_first_page_definition = {'Next': False, 'Prev': False, 'Count': items_per_page, 'Names': [instance_list[1]]}
    settings_page = self.home_pg.go_to_settings_usersettingspage()
    settings_page.change_pagesize(items_per_page)
    self.assertTrue(settings_page.find_message_and_dismiss(messages.SUCCESS))
    instances_page = self.home_pg.go_to_compute_instancespage()
    instances_page.create_instance(self.INSTANCE_NAME, instance_count=instance_count)
    self.assertTrue(instances_page.find_message_and_dismiss(messages.SUCCESS))
    self.assertTrue(instances_page.is_instance_active(instance_list[1]))
    instances_page = self.instances_page
    instances_page.instances_table.set_filter_value('name')
    instances_page.instances_table.filter(instance_list[1])
    instances_page.instances_table.assert_definition(filter_first_page_definition, sorting=True)
    instances_page.instances_table.filter(instance_list[0])
    instances_page.instances_table.assert_definition(second_page_definition, sorting=True)
    instances_page.instances_table.filter(self.INSTANCE_NAME)
    instances_page.instances_table.assert_definition(first_page_definition, sorting=True)
    instances_page.instances_table.filter('')
    settings_page = self.home_pg.go_to_settings_usersettingspage()
    settings_page.change_pagesize()
    self.assertTrue(settings_page.find_message_and_dismiss(messages.SUCCESS))
    instances_page = self.instances_page
    instances_page.delete_instances(instance_list)
    self.assertTrue(instances_page.find_message_and_dismiss(messages.SUCCESS))
    self.assertTrue(instances_page.are_instances_deleted(instance_list))
