Example #1
0
def test_edit_feature(player_wizard, browser):  # noqa
    """As a player, I can edit a feature."""
    print('As a player, I can edit a feature.')

    feature = features.FeatureAddModal(browser)
    feature_edit = features.FeatureEditModal(browser)
    features_table = features.FeaturesTable(browser)
    feature_tabs = features.FeatureModalTabs(browser)
    tabs = Tabs(browser)
    tabs.skills.click()

    features_table.add.click()
    ut.select_from_autocomplete(feature, 'name', '', browser)
    feature.add.click()

    rows = ut.get_table_rows(features_table, 'table', values=False)
    time.sleep(.3)
    rows[0][0].click()
    time.sleep(.3)
    feature_tabs.edit.click()

    feature_edit.name.clear()
    feature_edit.class_.clear()
    feature_edit.level.clear()
    feature_edit.description.clear()

    feature_edit.name = 'Edited Name'
    feature_edit.class_ = 'Edited Class'
    feature_edit.level = 1
    feature_edit.description = 'Edited Description'
    feature_edit.tracked.click()
    feature_edit.max_.clear()
    feature_edit.max_ = 4
    feature_edit.short_rest.click()

    assert feature_edit.name.get_attribute('value') == 'Edited Name'
    assert feature_edit.class_.get_attribute('value') == 'Edited Class'
    assert feature_edit.level.get_attribute('value') == '1'
    assert feature_edit.description.get_attribute(
        'value') == 'Edited Description'
    assert feature_edit.max_.get_attribute('value') == '4'
    assert 'active' in feature_edit.short_rest.get_attribute('class')
    feature_edit.done.click()

    rows = ut.get_table_rows(features_table, 'table', values=False)
    time.sleep(.3)

    row = ut.get_table_row(features_table, 'table', 1)
    assert row.feature == 'Edited Name'
    assert row.class_ == 'Edited Class'
Example #2
0
def test_edit_trait(player_wizard, browser):  # noqa
    """As a player, I can edit a trait."""
    print('As a player, I can edit a trait.')

    trait = traits.TraitAddModal(browser)
    trait_edit = traits.TraitEditModal(browser)
    traits_table = traits.TraitsTable(browser)
    trait_tabs = traits.TraitModalTabs(browser)
    tabs = Tabs(browser)
    tabs.skills.click()

    traits_table.add.click()
    ut.select_from_autocomplete(trait, 'name', '', browser)
    trait.add.click()

    rows = ut.get_table_rows(traits_table, 'table', values=False)
    time.sleep(.3)
    rows[0][0].click()
    time.sleep(.3)
    trait_tabs.edit.click()

    trait_edit.name.clear()
    trait_edit.race.clear()
    trait_edit.description.clear()

    trait_edit.name = 'Edited Name'
    trait_edit.race = 'Edited Race'
    trait_edit.description = 'Edited Description'
    trait_edit.tracked.click()
    trait_edit.max_.clear()
    trait_edit.max_ = 4
    trait_edit.short_rest.click()

    assert trait_edit.name.get_attribute('value') == 'Edited Name'
    assert trait_edit.race.get_attribute('value') == 'Edited Race'
    assert trait_edit.description.get_attribute(
        'value') == 'Edited Description'
    assert trait_edit.max_.get_attribute('value') == '4'
    assert 'active' in trait_edit.short_rest.get_attribute('class')
    trait_edit.done.click()

    rows = ut.get_table_rows(traits_table, 'table', values=False)
    time.sleep(.3)

    row = ut.get_table_row(traits_table, 'table', 1)
    assert row.trait == 'Edited Name'
    assert row.race == 'Edited Race'
Example #3
0
def test_delete_feature(player_wizard, browser):  # noqa
    """As a player, I can delete a feature."""
    print('As a player, I can delete a feature.')

    feature = features.FeatureAddModal(browser)
    features_table = features.FeaturesTable(browser)
    tabs = Tabs(browser)
    tabs.skills.click()

    features_table.add.click()
    ut.select_from_autocomplete(feature, 'name', '', browser)
    feature.add.click()

    rows = ut.get_table_rows(features_table, 'table', values=False)
    time.sleep(.3)
    rows[0][2].click()
    rows = ut.get_table_rows(features_table, 'table', values=False)

    assert rows[0][0].text == 'Add a new Feature'
Example #4
0
def test_delete_proficiency(player_wizard, browser):  # noqa
    """As a player, I can delete a proficiency."""
    print('As a player, I can delete a proficiency.')

    proficiency_add = proficiency.ProficiencyAddModal(browser)
    proficiency_table = proficiency.ProficiencyTable(browser)
    tabs = Tabs(browser)
    tabs.skills.click()

    proficiency_table.add.click()
    ut.select_from_autocomplete(proficiency_add, 'name', '', browser)
    proficiency_add.add.click()

    rows = ut.get_table_rows(proficiency_table, 'table', values=False)
    time.sleep(.3)
    rows[0][2].find_element_by_tag_name('a').click()
    rows = ut.get_table_rows(proficiency_table, 'table', values=False)

    assert rows[0][0].text == 'Add a new Proficiency'
Example #5
0
def test_delete_inventory(player_wizard, browser):  # noqa
    """As a player, I can delete an item in my inventory."""
    print('As a player, I can delete an item to my inventory.')

    inventory_add = inventory.InventoryAddModal(browser)
    inventory_table = inventory.InventoryTable(browser)
    tabs = Tabs(browser)
    tabs.inventory.click()

    inventory_table.add.click()
    ut.select_from_autocomplete(inventory_add, 'name', '', browser)
    inventory_add.add.click()

    rows = ut.get_table_rows(inventory_table, 'table', values=False)
    time.sleep(.3)
    rows[0][5].find_element_by_tag_name('a').click()
    rows = ut.get_table_rows(inventory_table, 'table', values=False)

    assert rows[0][0].text == 'Add a new item'
Example #6
0
def test_delete_trait(player_wizard, browser):  # noqa
    """As a player, I can delete a trait."""
    print('As a player, I can delete a trait.')

    trait = traits.TraitAddModal(browser)
    traits_table = traits.TraitsTable(browser)
    tabs = Tabs(browser)
    tabs.skills.click()

    traits_table.add.click()
    ut.select_from_autocomplete(trait, 'name', '', browser)
    trait.add.click()

    rows = ut.get_table_rows(traits_table, 'table', values=False)
    time.sleep(.3)
    rows[0][2].find_element_by_tag_name('a').click()
    rows = ut.get_table_rows(traits_table, 'table', values=False)

    assert rows[0][0].text == 'Add a new Trait'
Example #7
0
def test_delete_weapon(player_wizard, browser):  # noqa
    """As a player, I can delete a weapon."""
    print('As a player, I can delete a weapon.')

    weapon_add = weapon.WeaponAddModal(browser)
    weapon_table = weapon.WeaponTable(browser)
    tabs = Tabs(browser)
    tabs.equipment.click()

    weapon_table.add.click()
    ut.select_from_autocomplete(weapon_add, 'name', '', browser)
    weapon_add.add.click()

    rows = ut.get_table_rows(weapon_table, 'table', values=False)
    time.sleep(.3)
    rows[0][7].find_element_by_tag_name('a').click()
    rows = ut.get_table_rows(weapon_table, 'table', values=False)

    assert rows[0][0].text == 'Add a new weapon'
Example #8
0
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'
Example #9
0
def test_delete_armor(player_wizard, browser):  # noqa
    """As a player, I can delete an armor."""
    print('As a player, I can delete an armor.')

    armor_add = armor.ArmorAddModal(browser)
    armor_table = armor.ArmorTable(browser)
    tabs = Tabs(browser)
    tabs.equipment.click()

    armor_table.add.click()
    ut.select_from_autocomplete(armor_add, 'name', '', browser)
    armor_add.add.click()

    rows = ut.get_table_rows(armor_table, 'table', values=False)
    time.sleep(.3)
    rows[0][4].find_element_by_tag_name('a').click()
    rows = ut.get_table_rows(armor_table, 'table', values=False)

    assert rows[0][0].text == 'Add a new armor'
Example #10
0
def test_edit_proficiency(player_wizard, browser):  # noqa
    """As a player, I can edit a proficiency."""
    print('As a player, I can edit a proficiency.')

    proficiency_add = proficiency.ProficiencyAddModal(browser)
    proficiency_edit = proficiency.ProficiencyEditModal(browser)
    proficiency_table = proficiency.ProficiencyTable(browser)
    proficiency_tabs = proficiency.ProficiencyModalTabs(browser)
    tabs = Tabs(browser)
    tabs.skills.click()

    proficiency_table.add.click()
    ut.select_from_autocomplete(proficiency_add, 'name', '', browser)
    proficiency_add.add.click()

    rows = ut.get_table_rows(proficiency_table, 'table', values=False)
    time.sleep(.3)
    rows[0][0].click()
    time.sleep(.3)
    proficiency_tabs.edit.click()

    proficiency_edit.name.clear()
    proficiency_edit.type_.clear()
    proficiency_edit.description.clear()

    proficiency_edit.name = 'Edited Name'
    proficiency_edit.type_ = 'Edited Type'
    proficiency_edit.description = 'Edited Description'

    assert proficiency_edit.name.get_attribute('value') == 'Edited Name'
    assert proficiency_edit.type_.get_attribute('value') == 'Edited Type'
    assert proficiency_edit.description.get_attribute(
        'value') == 'Edited Description'
    proficiency_edit.done.click()

    rows = ut.get_table_rows(proficiency_table, 'table', values=False)
    time.sleep(.3)

    row = ut.get_table_row(proficiency_table, 'table', 1)
    assert row.proficiency == 'Edited Name'
    assert row.type == 'Edited Type'
Example #11
0
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()
Example #12
0
def test_add_weapon_open_model_by_row(player_wizard, browser):  # noqa
    """As a player, I can click the first row in weapon table to open the weapon add modal."""
    print(
        'As a player, I can click the first row in weapon table to open the weapon add modal.'
    )

    weapon_table = weapon.WeaponTable(browser)
    tabs = Tabs(browser)
    tabs.equipment.click()

    rows = ut.get_table_rows(weapon_table, 'table', values=False)

    assert rows[0][0].is_enabled()
    assert rows[0][0].is_displayed()
Example #13
0
def test_add_proficiency_open_model_by_row(player_wizard, browser):  # noqa
    """As a player, I can click the first row in proficiency table to open the proficiency add modal."""
    print(
        'As a player, I can click the first row in proficiency table to open the proficiency add modal.'
    )

    proficiency_table = proficiency.ProficiencyTable(browser)
    tabs = Tabs(browser)
    tabs.skills.click()

    rows = ut.get_table_rows(proficiency_table, 'table', values=False)

    assert rows[0][0].is_enabled()
    assert rows[0][0].is_displayed()
Example #14
0
def test_add_trait_open_model_by_row(player_wizard, browser):  # noqa
    """As a player, I can click the first row in trait table to open the trait add modal."""
    print(
        'As a player, I can click the first row in trait table to open the trait add modal.'
    )

    traits_table = traits.TraitsTable(browser)
    tabs = Tabs(browser)
    tabs.skills.click()

    rows = ut.get_table_rows(traits_table, 'table', values=False)

    assert rows[0][0].is_enabled()
    assert rows[0][0].is_displayed()
Example #15
0
def test_add_feature_open_model_by_row(player_wizard, browser):  # noqa
    """As a player, I can click the first row in feature table to open the feature add modal."""
    print(
        'As a player, I can click the first row in feature table to open the feature add modal.'
    )

    features_table = features.FeaturesTable(browser)
    tabs = Tabs(browser)
    tabs.skills.click()

    rows = ut.get_table_rows(features_table, 'table', values=False)

    assert rows[0][0].is_enabled()
    assert rows[0][0].is_displayed()
Example #16
0
def test_add_magic_items_open_model_by_row(player_wizard, browser):  # noqa
    """As a player, I can click the first row in magic_items table to open the magic_items add modal."""
    print(
        'As a player, I can click the first row in magic_items table to open the magic_items add modal.'
    )

    magic_items_table = magic_items.MagicItemsTable(browser)
    tabs = Tabs(browser)
    tabs.inventory.click()

    rows = ut.get_table_rows(magic_items_table, 'table', values=False)

    assert rows[0][0].is_enabled()
    assert rows[0][0].is_displayed()
Example #17
0
def test_add_inventory_open_model_by_row(player_wizard, browser):  # noqa
    """As a player, I can click the first row in inventory table to open the inventory add modal."""
    print(
        'As a player, I can click the first row in inventory table to open the inventory add modal.'
    )

    inventory_table = inventory.InventoryTable(browser)
    tabs = Tabs(browser)
    tabs.inventory.click()

    rows = ut.get_table_rows(inventory_table, 'table', values=False)

    assert rows[0][0].is_enabled()
    assert rows[0][0].is_displayed()
Example #18
0
def test_add_armor_open_model_by_row(player_wizard, browser):  # noqa
    """As a player, I can click the first row in armor table to open the armor add modal."""
    print(
        'As a player, I can click the first row in armor table to open the armor add modal.'
    )

    armor_table = armor.ArmorTable(browser)
    tabs = Tabs(browser)
    tabs.equipment.click()

    rows = ut.get_table_rows(armor_table, 'table', values=False)

    assert rows[0][0].is_enabled()
    assert rows[0][0].is_displayed()
Example #19
0
def test_edit_armor(player_wizard, browser):  # noqa
    """As a player, I can edit an armor."""
    print('As a player, I can edit an armor.')

    armor_add = armor.ArmorAddModal(browser)
    armor_edit = armor.ArmorEditModal(browser)
    armor_table = armor.ArmorTable(browser)
    armor_tabs = armor.ArmorModalTabs(browser)
    tabs = Tabs(browser)
    tabs.equipment.click()

    armor_table.add.click()
    ut.select_from_autocomplete(armor_add, 'name', '', browser)
    armor_add.add.click()

    rows = ut.get_table_rows(armor_table, 'table', values=False)
    time.sleep(.3)
    rows[0][0].click()
    time.sleep(.3)
    armor_tabs.edit.click()
    time.sleep(.3)

    armor_edit.name = 'Edit Name'
    armor_edit.type_ = 'Edit Type'
    armor_edit.magical_modifier = 2
    armor_edit.price = 300
    armor_edit.currency_denomination = 'EP'
    armor_edit.weight = 200
    armor_edit.armor_class = 16
    armor_edit.stealth = 'Advantage\t'
    armor_edit.doff.click()
    armor_edit.description = 'Edit Description'

    assert armor_edit.name.get_attribute('value') == 'Edit Name'
    assert armor_edit.type_.get_attribute('value') == 'Edit Type'
    assert armor_edit.magical_modifier.get_attribute('value') == '2'
    assert armor_edit.price.get_attribute('value') == '300'
    assert armor_edit.currency_denomination.get_attribute('value') == 'EP'
    assert armor_edit.weight.get_attribute('value') == '200'
    assert armor_edit.armor_class.get_attribute('value') == '16'
    assert armor_edit.stealth.get_attribute('value') == 'Advantage'
    assert 'active' in armor_add.doff.get_attribute('class')
    assert armor_edit.description.get_attribute('value') == 'Edit Description'
    armor_edit.done.click()
    time.sleep(.3)
    row = ut.get_table_row(armor_table, 'table', 1)
    assert row.armor == 'Edit Name  + 2'
    assert row.armor_class == '16'
    assert row.type == 'Edit Type'
Example #20
0
def test_edit_inventory(player_wizard, browser):  # noqa
    """As a player, I can edit an item in my inventory."""
    print('As a player, I can edit an item in my inventory.')

    inventory_add = inventory.InventoryAddModal(browser)
    inventory_edit = inventory.InventoryEditModal(browser)
    inventory_table = inventory.InventoryTable(browser)
    inventory_tabs = inventory.InventoryModalTabs(browser)
    tabs = Tabs(browser)
    tabs.inventory.click()

    inventory_table.add.click()
    ut.select_from_autocomplete(inventory_add, 'name', '', browser)
    inventory_add.add.click()

    rows = ut.get_table_rows(inventory_table, 'table', values=False)
    time.sleep(.3)
    rows[0][0].click()
    time.sleep(.3)
    inventory_tabs.edit.click()
    time.sleep(.3)

    inventory_edit.name = 'Edit Name'
    inventory_edit.weight = 100
    inventory_edit.quantity = 2
    inventory_edit.cost = 100
    inventory_edit.currency_denomination = 'GP'
    inventory_edit.description = 'Edit Description'

    assert inventory_edit.name.get_attribute('value') == 'Edit Name'
    assert inventory_edit.weight.get_attribute('value') == '100'
    assert inventory_edit.quantity.get_attribute('value') == '2'
    assert inventory_edit.cost.get_attribute('value') == '100'
    assert inventory_edit.currency_denomination.get_attribute('value') == 'GP'
    assert inventory_edit.description.get_attribute(
        'value') == 'Edit Description'

    inventory_edit.done.click()
    time.sleep(.3)
    row = ut.get_table_row(inventory_table, 'table', 1)
    assert row.item == 'Edit Name'
    assert row.quantity == '2'
    assert row.weight == '100 lbs.'
    assert row.cost == '100 GP'
    assert row.description == 'Edit Description'
Example #21
0
def test_edit_weapon(player_wizard, browser):  # noqa
    """As a player, I can edit a weapon."""
    print('As a player, I can edit a weapon.')

    weapon_add = weapon.WeaponAddModal(browser)
    weapon_edit = weapon.WeaponEditModal(browser)
    weapon_table = weapon.WeaponTable(browser)
    weapon_tabs = weapon.WeaponModalTabs(browser)
    tabs = Tabs(browser)
    tabs.equipment.click()

    weapon_table.add.click()
    ut.select_from_autocomplete(weapon_add, 'name', '', browser)
    weapon_add.add.click()

    rows = ut.get_table_rows(weapon_table, 'table', values=False)
    time.sleep(.3)
    rows[0][0].click()
    time.sleep(.3)
    weapon_tabs.edit.click()
    time.sleep(.3)

    weapon_edit.name = 'Edit Name'
    weapon_edit.damage = '1d10'
    weapon_edit.magical_modifier = 2
    weapon_edit.to_hit_modifier = 2
    weapon_edit.type_ = 'Melee'
    weapon_edit.handedness = 'One-Handed'
    weapon_edit.proficiency = 'Simple'
    weapon_edit.price = 200
    weapon_edit.currency_denomination = 'GP'
    weapon_edit.weight = 200
    weapon_edit.range_ = 5
    weapon_edit.damage_type = 'Slashing'
    weapon_edit.property_ = 'Versatile'
    weapon_edit.quantity = 2
    weapon_edit.description = 'Edit Description'

    assert weapon_edit.name.get_attribute('value') == 'Edit Name'
    assert weapon_edit.damage.get_attribute('value') == '1d10'
    assert weapon_edit.magical_modifier.get_attribute('value') == '2'
    assert weapon_edit.to_hit_modifier.get_attribute('value') == '2'
    assert weapon_edit.type_.get_attribute('value') == 'Melee'
    assert weapon_edit.handedness.get_attribute('value') == 'One-Handed'
    assert weapon_edit.proficiency.get_attribute('value') == 'Simple'
    assert weapon_edit.price.get_attribute('value') == '200'
    assert weapon_edit.currency_denomination.get_attribute('value') == 'GP'
    assert weapon_edit.weight.get_attribute('value') == '200'
    assert weapon_edit.range_.get_attribute('value') == '5'
    assert weapon_edit.damage_type.get_attribute('value') == 'Slashing'
    assert weapon_edit.property_.get_attribute('value') == 'Versatile'
    assert weapon_edit.quantity.get_attribute('value') == '2'
    assert weapon_edit.description.get_attribute('value') == 'Edit Description'
    weapon_edit.done.click()
    time.sleep(.3)
    row = ut.get_table_row(weapon_table, 'table', 1)
    assert row.weapon == 'Edit Name  + 2'
    assert row.to_hit == '+ 10'
    assert row.damage == '1d10'
    assert row.damage_type == 'Slashing'
    assert row.range == '5 ft.'
    assert row.property == 'Versatile'
    assert row.quantity == '2'