def test_magic_items_total_weight(player_wizard, browser): # noqa """As a player, in the magic_items table, total weight is calculated correctly.""" print(('As a player, in the armor table, total weight is calculated ' 'correctly')) magic_items_add = magic_items.MagicItemsAddModal(browser) magic_items_table = magic_items.MagicItemsTable(browser) tabs = Tabs(browser) tabs.inventory.click() magic_items_table.add.click() ut.select_from_autocomplete(magic_items_add, 'item', browser, has_search_term=False, search_term='b') magic_items_add.weight = 5 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, search_term='b') magic_items_add.weight = 10 magic_items_add.add.click() assert magic_items_table.total_weight.text.strip() == '15 (lbs)'
def test_autocomplete_magic_items(player_wizard, browser): # noqa """As a player, if I start typing in the autocomplete inputs, I can select suggested items in the dropdown.""" print(('As a player, if I start typing in the autocomplete inputs, I can ' 'select suggested items in the dropdown.')) 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) ut.select_from_autocomplete(magic_items_add, 'type_', browser, has_search_term=False) ut.select_from_autocomplete(magic_items_add, 'rarity', browser, has_search_term=False) assert magic_items_add.item.get_attribute( 'value').strip() == 'Adamantine Armor' assert magic_items_add.type_.get_attribute('value').strip() == 'Armor' assert magic_items_add.rarity.get_attribute('value').strip() == 'Common'
def test_preview_magic_items(player_wizard, browser): # noqa """As a player, I can select a row in the magic_items table and view the item in the preview tab.""" print( 'As a player, I can select a row in the magic_items table and view the item in the preview tab' ) magic_items_add = magic_items.MagicItemsAddModal(browser) magic_items_table = magic_items.MagicItemsTable(browser) magic_items_preview = magic_items.MagicItemsPreviewModal(browser) tabs = Tabs(browser) tabs.inventory.click() magic_items_table.add.click() ut.select_from_autocomplete(magic_items_add, 'item', '', browser) magic_items_add.add.click() time.sleep(.3) row = ut.get_table_row(magic_items_table, 'table', values=False) time.sleep(.3) row[0].click() time.sleep(.5) assert magic_items_preview.item.text == 'Adamantine Armor' assert magic_items_preview.rarity.text == 'Uncommon' assert magic_items_preview.type_.text == 'Type: Armor (medium or heavy but not hide)' assert magic_items_preview.max_charges.text == 'Max Charges: 0' assert magic_items_preview.weight.text == 'Weight: 0 lbs.' assert 'reinforced with adamantine' in magic_items_preview.description.text
def test_delete_magic_items(player_wizard, browser): # noqa """As a player, I can delete an item in my magic_items.""" print('As a player, I can delete an item to my magic_items.') magic_items_add = magic_items.MagicItemsAddModal(browser) magic_items_table = magic_items.MagicItemsTable(browser) tabs = Tabs(browser) tabs.inventory.click() magic_items_table.add.click() ut.select_from_autocomplete( magic_items_add, 'item', browser, has_search_term=False ) magic_items_add.add.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( table_has_data(magic_items_table) ) rows = ut.get_table_rows(magic_items_table, 'table', values=False) WebDriverWait(browser, DEFAULT_WAIT_TIME).until( modal_finished_closing() ) rows[0][5].find_element_by_tag_name('a').click() time.sleep(.5) rows = ut.get_table_rows(magic_items_table, 'table', values=False) assert rows[0][0].text.strip() == 'Add a new magic item'
def test_preview_magic_items(player_wizard, browser): # noqa """As a player, I can select a row in the magic_items table and view the item in the preview tab.""" print(('As a player, I can select a row in the magic_items table and view ' ' the item in the preview tab')) magic_items_add = magic_items.MagicItemsAddModal(browser) magic_items_table = magic_items.MagicItemsTable(browser) magic_items_preview = magic_items.MagicItemsPreviewModal(browser) tabs = Tabs(browser) tabs.inventory.click() magic_items_table.add.click() ut.select_from_autocomplete( magic_items_add, 'item', browser, has_search_term=False ) magic_items_add.add.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( modal_finished_closing() ) WebDriverWait(browser, DEFAULT_WAIT_TIME).until( table_has_data(magic_items_table) ) row = ut.get_table_row(magic_items_table, 'table', values=False) row[0].click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( EC.text_to_be_present_in_element( (By.ID, magic_items_preview.item_id), 'Adamantine Armor' ) ) preview_type_ = magic_items_preview.type_.text.split() magic_items_type = ' '.join([string.strip() for string in preview_type_]) magic_items_max_charges = ' '.join( [ string.strip() for string in magic_items_preview.max_charges.text.split() ] ) magic_items_weight = ' '.join( [ string.strip() for string in magic_items_preview.weight.text.split() ] ) assert magic_items_preview.item.text.strip() == 'Adamantine Armor' assert magic_items_preview.rarity.text.strip() == 'Uncommon' assert magic_items_type == 'Type: Armor (medium or heavy but not hide)' assert magic_items_max_charges == 'Max Charges: 0' assert magic_items_weight == 'Weight: 0 lbs.' assert 'reinforced with adamantine' in magic_items_preview.description.text.strip()
def test_edit_magic_items(player_wizard, browser): # noqa """As a player, I can edit an item in my magic_items.""" print('As a player, I can edit an item in my magic_items.') magic_items_add = magic_items.MagicItemsAddModal(browser) magic_items_edit = magic_items.MagicItemsEditModal(browser) magic_items_table = magic_items.MagicItemsTable(browser) magic_items_tabs = magic_items.MagicItemsModalTabs(browser) tabs = Tabs(browser) tabs.inventory.click() magic_items_table.add.click() ut.select_from_autocomplete(magic_items_add, 'item', '', browser) magic_items_add.add.click() rows = ut.get_table_rows(magic_items_table, 'table', values=False) time.sleep(.3) rows[0][0].click() time.sleep(.3) magic_items_tabs.edit.click() time.sleep(.3) magic_items_edit.item = 'Edit Name' magic_items_edit.type_ = 'Edit Armor' magic_items_edit.rarity = 'Edit Rare' magic_items_edit.max_charges = 3 magic_items_edit.charges = 3 magic_items_edit.weight = 100 magic_items_edit.requires_attunement.click() magic_items_edit.attuned.click() magic_items_edit.description = 'Edit Description' assert magic_items_edit.item.get_attribute('value') == 'Edit Name' assert magic_items_edit.type_.get_attribute('value') == 'Edit Armor' assert magic_items_edit.rarity.get_attribute('value') == 'Edit Rare' assert magic_items_edit.max_charges.get_attribute('value') == '3' assert magic_items_edit.charges.get_attribute('value') == '3' assert magic_items_edit.weight.get_attribute('value') == '100' assert magic_items_edit.requires_attunement.is_selected() assert magic_items_edit.attuned.is_selected() assert magic_items_edit.description.get_attribute( 'value') == 'Edit Description' magic_items_edit.done.click() time.sleep(.3) row = ut.get_table_row(magic_items_table, 'table', 1) assert row.magic_item == 'Edit Name' assert row.charges == '3' assert row.weight == '100 lbs.' assert row.description == 'Edit Description' row = ut.get_table_row(magic_items_table, 'table', 1, values=False) assert row[2].find_element_by_tag_name('input').is_selected()
def test_magic_items_persists(player_wizard, browser): # noqa """As a player, all fields for magic_items persist after page refresh.""" print( 'As a player, all fields for magic_items persist after page refresh.') magic_items_add = magic_items.MagicItemsAddModal(browser) magic_items_edit = magic_items.MagicItemsEditModal(browser) magic_items_table = magic_items.MagicItemsTable(browser) magic_items_tabs = magic_items.MagicItemsModalTabs(browser) tabs = Tabs(browser) tabs.inventory.click() magic_items_table.add.click() ut.select_from_autocomplete(magic_items_add, 'item', browser, has_search_term=False) magic_items_add.add.click() browser.refresh() row = ut.get_table_row(magic_items_table, 'table', 1) assert row.magic_item.strip() == 'Adamantine Armor' assert row.charges.strip() == 'N/A' assert row.weight.strip() == '0 lbs.' assert 'with adamantine' in row.description.strip() row = ut.get_table_row(magic_items_table, 'table', 1, values=False) assert row[2].find_element_by_tag_name('input').is_displayed() is False row = ut.get_table_row(magic_items_table, 'table', values=False) row[0].click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( EC.element_to_be_clickable((By.ID, magic_items_tabs.edit_id))) magic_items_tabs.edit.click() assert magic_items_edit.item.get_attribute( 'value').strip() == 'Adamantine Armor' armor_type = 'Armor (medium or heavy but not hide)' assert magic_items_edit.type_.get_attribute('value').strip() == armor_type assert magic_items_edit.rarity.get_attribute('value').strip() == 'Uncommon' assert magic_items_edit.max_charges.get_attribute('value').strip() == '0' assert magic_items_edit.weight.get_attribute('value').strip() == '0' assert magic_items_edit.requires_attunement.is_selected() is False description = magic_items_edit.description.get_attribute('value').strip() assert 'reinforced with adamantine' in description
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() magic_items_table.add.click() ut.select_from_autocomplete(magic_items_add, 'item', '', browser) magic_items_add.weight = 100 magic_items_add.add.click() time.sleep(.3) magic_items_table.add.click() ut.select_from_autocomplete(magic_items_add, 'item', '', browser, arrow_down_count=2) magic_items_add.max_charges = 2 magic_items_add.charges = 1 magic_items_add.add.click() time.sleep(.3) magic_items_table.magic_item_header.click() time.sleep(.3) rows = ut.get_table_row(magic_items_table, 'table', values=False) assert rows[0].text.strip() == 'Amulet of Health' time.sleep(.3) magic_items_table.charges_header.click() time.sleep(.3) rows = ut.get_table_row(magic_items_table, 'table', values=False) assert rows[1].text.strip() == 'N/A' time.sleep(.3) magic_items_table.weight_header.click() time.sleep(.3) rows = ut.get_table_row(magic_items_table, 'table', values=False) assert rows[3].text.strip() == '0 lbs.' time.sleep(.3) magic_items_table.weight_header.click() time.sleep(.3) rows = ut.get_table_row(magic_items_table, 'table', values=False) assert rows[3].text.strip() == '100 lbs.'
def test_add_magic_items(player_wizard, browser): # noqa """As a player, I can add an item to my magic_items.""" print('As a player, I can add an item to my magic_items.') magic_items_add = magic_items.MagicItemsAddModal(browser) magic_items_table = magic_items.MagicItemsTable(browser) tabs = Tabs(browser) tabs.inventory.click() magic_items_table.add.click() magic_items_add.item = 'Add Name' magic_items_add.type_ = 'Add Armor' magic_items_add.rarity = 'Add Rare' magic_items_add.max_charges = 3 magic_items_add.charges = 3 magic_items_add.weight = 100 magic_items_add.requires_attunement.click() magic_items_add.attuned.click() magic_items_add.description = 'Add Description' assert magic_items_add.item.get_attribute('value').strip() == 'Add Name' assert magic_items_add.type_.get_attribute('value').strip() == 'Add Armor' assert magic_items_add.rarity.get_attribute('value').strip() == 'Add Rare' assert magic_items_add.max_charges.get_attribute('value').strip() == '3' assert magic_items_add.charges.get_attribute('value').strip() == '3' assert magic_items_add.weight.get_attribute('value').strip() == '100' assert magic_items_add.requires_attunement.is_selected() assert magic_items_add.attuned.is_selected() assert magic_items_add.description.get_attribute('value').strip() == 'Add Description' magic_items_add.add.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( table_has_data(magic_items_table) ) row = ut.get_table_row(magic_items_table, 'table', 1) assert row.magic_item.strip() == 'Add Name' assert row.charges.strip() == '3' assert row.weight.strip() == '100 lbs.' assert row.description.strip() == 'Add Description' row = ut.get_table_row(magic_items_table, 'table', 1, values=False) assert row[2].find_element_by_tag_name('input').is_selected()
def test_magic_items_persists(player_wizard, browser): # noqa """As a player, all fields for magic_items persist after page refresh.""" print( 'As a player, all fields for magic_items persist after page refresh.') magic_items_add = magic_items.MagicItemsAddModal(browser) magic_items_edit = magic_items.MagicItemsEditModal(browser) magic_items_table = magic_items.MagicItemsTable(browser) magic_items_tabs = magic_items.MagicItemsModalTabs(browser) tabs = Tabs(browser) tabs.inventory.click() magic_items_table.add.click() ut.select_from_autocomplete(magic_items_add, 'item', '', browser) magic_items_add.add.click() browser.refresh() row = ut.get_table_row(magic_items_table, 'table', 1) assert row.magic_item.strip() == 'Adamantine Armor' assert row.charges == 'N/A' assert row.weight == '0 lbs.' assert 'with adamantine' in row.description row = ut.get_table_row(magic_items_table, 'table', 1, values=False) assert row[2].find_element_by_tag_name('input').is_displayed() is False row = ut.get_table_row(magic_items_table, 'table', values=False) time.sleep(.3) row[0].click() time.sleep(.3) magic_items_tabs.edit.click() assert magic_items_edit.item.get_attribute('value') == 'Adamantine Armor' assert magic_items_edit.type_.get_attribute( 'value') == 'Armor (medium or heavy but not hide)' assert magic_items_edit.rarity.get_attribute('value') == 'Uncommon' assert magic_items_edit.max_charges.get_attribute('value') == '0' assert magic_items_edit.charges.get_attribute('value') == '0' assert magic_items_edit.weight.get_attribute('value') == '0' assert magic_items_edit.requires_attunement.is_selected() is False assert magic_items_edit.attuned.is_selected() is False assert 'reinforced with adamantine' in magic_items_edit.description.get_attribute( 'value')
def test_autocomplete_magic_items(player_wizard, browser): # noqa """As a player, if I start typing in the autocomplete inputs, I can select suggested items in the dropdown.""" print( 'As a player, if I start typing in the autocomplete inputs, I can select suggested items in the dropdown.' ) magic_items_add = magic_items.MagicItemsAddModal(browser) magic_items_table = magic_items.MagicItemsTable(browser) tabs = Tabs(browser) tabs.inventory.click() magic_items_table.add.click() ut.select_from_autocomplete(magic_items_add, 'item', '', browser) ut.select_from_autocomplete(magic_items_add, 'type_', '', browser) ut.select_from_autocomplete(magic_items_add, 'rarity', '', browser) assert magic_items_add.item.get_attribute('value') == 'Adamantine Armor' assert magic_items_add.type_.get_attribute('value') == 'Armor' assert magic_items_add.rarity.get_attribute('value') == 'Common'
def test_delete_magic_items(player_wizard, browser): # noqa """As a player, I can delete an item in my magic_items.""" print('As a player, I can delete an item to my magic_items.') magic_items_add = magic_items.MagicItemsAddModal(browser) magic_items_table = magic_items.MagicItemsTable(browser) tabs = Tabs(browser) tabs.inventory.click() magic_items_table.add.click() ut.select_from_autocomplete(magic_items_add, 'item', '', browser) magic_items_add.add.click() rows = ut.get_table_rows(magic_items_table, 'table', values=False) time.sleep(.3) rows[0][5].find_element_by_tag_name('a').click() rows = ut.get_table_rows(magic_items_table, 'table', values=False) assert rows[0][0].text == 'Add a new magic item'
def test_magic_items_total_weight(player_wizard, browser): # noqa """As a player, in the magic_items table, total weight is calculated correctly.""" print( 'As a player, in the armor table, total weight is calculated correctly' ) magic_items_add = magic_items.MagicItemsAddModal(browser) magic_items_table = magic_items.MagicItemsTable(browser) tabs = Tabs(browser) tabs.inventory.click() magic_items_table.add.click() ut.select_from_autocomplete(magic_items_add, 'item', 'b', browser) magic_items_add.weight = 5 magic_items_add.add.click() time.sleep(.3) magic_items_table.add.click() ut.select_from_autocomplete(magic_items_add, 'item', 'b', browser) magic_items_add.weight = 10 magic_items_add.add.click() assert magic_items_table.total_weight.text == '15 (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_edit_magic_items(player_wizard, browser): # noqa """As a player, I can edit an item in my magic_items.""" print('As a player, I can edit an item in my magic_items.') magic_items_add = magic_items.MagicItemsAddModal(browser) magic_items_edit = magic_items.MagicItemsEditModal(browser) magic_items_table = magic_items.MagicItemsTable(browser) magic_items_tabs = magic_items.MagicItemsModalTabs(browser) tabs = Tabs(browser) tabs.inventory.click() magic_items_table.add.click() ut.select_from_autocomplete(magic_items_add, 'item', browser, has_search_term=False) magic_items_add.add.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until(modal_finished_closing()) rows = ut.get_table_rows(magic_items_table, 'table', values=False) rows[0][0].click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( EC.element_to_be_clickable((By.ID, magic_items_tabs.edit_id))) magic_items_tabs.edit.click() magic_items_edit.item = 'Edit Name' magic_items_edit.type_ = 'Edit Armor' magic_items_edit.rarity = 'Edit Rare' magic_items_edit.max_charges = 3 magic_items_edit.charges = 3 magic_items_edit.weight = 100 magic_items_edit.requires_attunement.click() magic_items_edit.attuned.click() magic_items_edit.description = 'Edit Description' assert magic_items_edit.item.get_attribute('value').strip() == 'Edit Name' assert magic_items_edit.type_.get_attribute( 'value').strip() == 'Edit Armor' assert magic_items_edit.rarity.get_attribute( 'value').strip() == 'Edit Rare' assert magic_items_edit.max_charges.get_attribute('value').strip() == '3' assert magic_items_edit.charges.get_attribute('value').strip() == '3' assert magic_items_edit.weight.get_attribute('value').strip() == '100' assert magic_items_edit.requires_attunement.is_selected() assert magic_items_edit.attuned.is_selected() assert magic_items_edit.description.get_attribute( 'value').strip() == 'Edit Description' magic_items_edit.done.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until(modal_finished_closing()) row = ut.get_table_row(magic_items_table, 'table', 1) assert row.magic_item.strip() == 'Edit Name' assert row.charges.strip() == '3' assert row.weight.strip() == '100 lbs.' assert row.description.strip() == 'Edit Description' row = ut.get_table_row(magic_items_table, 'table', 1, values=False) assert row[2].find_element_by_tag_name('input').is_selected()