def test_inventory_sorting(player_wizard, browser): # noqa """As a player, I can sort the inventory table by clicking on the sortable columns.""" print(('As a player, I can sort the inventory table by clicking on the ' 'sortable columns')) inventory_add = inventory.InventoryAddModal(browser) inventory_table = inventory.InventoryTable(browser) tabs = Tabs(browser) tabs.inventory.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( EC.element_to_be_clickable((By.ID, inventory_table.add_id))) inventory_table.add.click() ut.select_from_autocomplete(inventory_add, 'name', browser, has_search_term=False) inventory_add.add.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until(modal_finished_closing()) inventory_table.add.click() ut.select_from_autocomplete(inventory_add, 'name', browser, arrow_down_count=2) inventory_add.add.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until(modal_finished_closing()) inventory_table.item_header.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( sorting_arrow_down(inventory_table.item_header_sorting_arrow, )) rows = ut.get_table_row(inventory_table, 'table', values=False) assert rows[0].text.strip() == 'Acid (vial)' inventory_table.quantity_header.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( sorting_arrow_up(inventory_table.quantity_header_sorting_arrow, )) rows = ut.get_table_row(inventory_table, 'table', values=False) assert rows[1].text.strip() == '1' inventory_table.weight_header.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( sorting_arrow_up(inventory_table.weight_header_sorting_arrow, )) rows = ut.get_table_row(inventory_table, 'table', values=False) assert rows[2].text.strip() == '1 lbs.'
def test_magic_items_sorting(player_wizard, browser): # noqa """As a player, I can sort the magic_items table by clicking on the sortable columns.""" print(('As a player, I can sort the magic_items table by clicking on the ' 'sortable columns')) magic_items_add = magic_items.MagicItemsAddModal(browser) magic_items_table = magic_items.MagicItemsTable(browser) tabs = Tabs(browser) tabs.inventory.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( EC.element_to_be_clickable((By.ID, magic_items_table.add_id))) magic_items_table.add.click() ut.select_from_autocomplete(magic_items_add, 'item', browser, has_search_term=False) magic_items_add.weight = 100 magic_items_add.add.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until(modal_finished_closing()) magic_items_table.add.click() ut.select_from_autocomplete(magic_items_add, 'item', browser, has_search_term=False, arrow_down_count=2) magic_items_add.max_charges = 2 magic_items_add.charges = 1 magic_items_add.add.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until(modal_finished_closing()) magic_items_table.magic_item_header.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( sorting_arrow_down( magic_items_table.magic_item_header_sorting_arrow, )) rows = ut.get_table_row(magic_items_table, 'table', values=False) assert rows[0].text.strip() == 'Amulet of Health' magic_items_table.charges_header.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( sorting_arrow_up(magic_items_table.charges_header_sorting_arrow, )) rows = ut.get_table_row(magic_items_table, 'table', values=False) assert rows[1].text.strip() == 'N/A' magic_items_table.weight_header.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( sorting_arrow_up(magic_items_table.weight_header_sorting_arrow, )) rows = ut.get_table_row(magic_items_table, 'table', values=False) assert rows[3].text.strip() == '0 lbs.' magic_items_table.weight_header.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( sorting_arrow_down(magic_items_table.weight_header_sorting_arrow, )) rows = ut.get_table_row(magic_items_table, 'table', values=False) assert rows[3].text.strip() == '100 lbs.'
def test_weapon_sorting(player_wizard, browser): # noqa """As a player, I can sort the weapon table by clicking on the sortable columns.""" print(('As a player, I can sort the weapon table by clicking on the ' ' sortable columns')) weapon_add = weapon.WeaponAddModal(browser) weapon_table = weapon.WeaponTable(browser) tabs = Tabs(browser) tabs.equipment.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( EC.element_to_be_clickable((By.ID, weapon_table.add_id))) weapon_table.add.click() ut.select_from_autocomplete(weapon_add, 'name', browser, has_search_term=False) weapon_add.name.send_keys(Keys.TAB) weapon_add.add.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until(modal_finished_closing()) WebDriverWait(browser, DEFAULT_WAIT_TIME).until(table_has_data(weapon_table)) weapon_table.add.click() ut.select_from_autocomplete(weapon_add, 'name', browser, has_search_term=False, arrow_down_count=2) weapon_add.name.send_keys(Keys.TAB) weapon_add.add.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until(modal_finished_closing()) weapon_table.weapon_header.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( sorting_arrow_down(weapon_table.weapon_header_sorting_arrow, )) rows = ut.get_table_row(weapon_table, 'table', values=False) assert rows[0].text.strip() == 'Blowgun' weapon_table.to_hit_header.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( sorting_arrow_up(weapon_table.to_hit_header_sorting_arrow, )) rows = ut.get_table_row(weapon_table, 'table', values=False) assert rows[1].text.strip() == '+ 6' weapon_table.damage_header.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( sorting_arrow_up(weapon_table.damage_header_sorting_arrow, )) rows = ut.get_table_row(weapon_table, 'table', values=False) assert rows[2].text.strip() == '1' weapon_table.damage_type_header.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( sorting_arrow_up(weapon_table.damage_type_header_sorting_arrow, )) rows = ut.get_table_row(weapon_table, 'table', values=False) assert rows[3].text.strip() == 'Piercing' weapon_table.damage_type_header.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( sorting_arrow_down(weapon_table.damage_type_header_sorting_arrow, )) rows = ut.get_table_row(weapon_table, 'table', values=False) assert rows[3].text.strip() == 'Slashing' weapon_table.range_header.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( sorting_arrow_up(weapon_table.range_header_sorting_arrow, )) rows = ut.get_table_row(weapon_table, 'table', values=False) assert rows[4].text.strip() == '5 ft.' weapon_table.property_header.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( sorting_arrow_up(weapon_table.property_header_sorting_arrow, )) rows = ut.get_table_row(weapon_table, 'table', values=False) assert rows[5].text.strip() == 'Ranged, Ammunition, and Loading' weapon_table.quantity_header.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( sorting_arrow_up(weapon_table.quantity_header_sorting_arrow, )) rows = ut.get_table_row(weapon_table, 'table', values=False) assert rows[6].text.strip() == '1'
def test_armor_sorting(player_wizard, browser): # noqa """As a player, I can sort the armor table by clicking on the sortable columns.""" print(('As a player, I can sort the armor table by clicking on the ' 'sortable columns')) armor_add = armor.ArmorAddModal(browser) armor_table = armor.ArmorTable(browser) tabs = Tabs(browser) tabs.equipment.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( EC.element_to_be_clickable((By.ID, armor_table.add_id))) armor_table.add.click() ut.select_from_autocomplete(armor_add, 'name', browser, has_search_term=False) armor_add.name.send_keys(Keys.TAB) armor_add.add.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until(modal_finished_closing()) armor_table.add.click() ut.select_from_autocomplete(armor_add, 'name', browser, arrow_down_count=2, has_search_term=False) armor_add.name.send_keys(Keys.TAB) armor_add.add.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until(modal_finished_closing()) WebDriverWait(browser, DEFAULT_WAIT_TIME).until(table_has_data(armor_table)) armor_table.armor_header.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( sorting_arrow_down(armor_table.armor_header_sorting_arrow, )) time.sleep(.5) rows = ut.get_table_row(armor_table, 'table', values=False) assert rows[1].text.strip() == 'Chain mail' armor_table.type_header.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( sorting_arrow_up(armor_table.type_header_sorting_arrow, )) rows = ut.get_table_row(armor_table, 'table', values=False) assert rows[2].text.strip() == 'Heavy'