def test_tracked_reset(player_wizard, browser): # noqa """As a player, I can reset a tracked ability by clicking on the reset icon.""" print(('As a player, I can reset a tracked ability by clicking on the ' 'reset icon.')) feature = features.FeatureAddModal(browser) features_table = features.FeaturesTable(browser) tracked_table = tracked.TrackedTable(browser) tabs = Tabs(browser) tabs.skills.click() features_table.add.click() feature.name = 'Add Name' feature.class_ = 'Add Class' feature.level = 1 feature.description = 'Add Description' feature.tracked.click() feature.max_ = 4 feature.short_rest.click() feature.add.click() tracked_table.tracked1_used_up.click() assert tracked_table.tracked1_used.text.strip() == '1' tracked_table.tracked1_refresh.click() assert tracked_table.tracked1_used.text.strip() == '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, has_search_term=False) feature.name.send_keys(Keys.TAB) feature.add.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until(modal_finished_closing()) WebDriverWait(browser, DEFAULT_WAIT_TIME).until(table_has_data(features_table)) rows = ut.get_table_rows(features_table, 'table', values=False) rows[0][2].click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until(table_is_empty(features_table)) rows = ut.get_table_rows(features_table, 'table', values=False) assert rows[0][0].text.strip() == 'Add a new Feature'
def test_feature_ogl_pre_pop(player_wizard, browser): # noqa """As a player, if I select from feature name field, OGL data auto-completes and the remaining fields pre-populate.""" print(('As a player, if I select from feature name field, OGL data ' 'auto-completes and the remaining fields pre-populate.')) 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, has_search_term=False) feature.name.send_keys(Keys.TAB) feature.add.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until(table_has_data(features_table)) row = ut.get_table_row(features_table, 'table', 1) assert row.class_.strip() == 'Barbarian' assert 'Rage' in row.feature.strip()
def test_tracked_increase_decrease(player_wizard, browser): # noqa """As a player, I can increase or decrease tracked abilities with the stepper widget and the bar reflects these changes.""" print(('As a player, I can increase or decrease tracked abilities with ' 'the stepper widget and the bar reflects these changes.')) feature = features.FeatureAddModal(browser) features_table = features.FeaturesTable(browser) tracked_table = tracked.TrackedTable(browser) tabs = Tabs(browser) tabs.skills.click() features_table.add.click() feature.name = 'Add Name' feature.class_ = 'Add Class' feature.level = 1 feature.description = 'Add Description' feature.tracked.click() feature.max_ = 4 feature.short_rest.click() feature.add.click() tracked_table.tracked1_used_up.click() assert tracked_table.tracked1_used.text.strip() == '1' tracked_table.tracked1_used_down.click() assert tracked_table.tracked1_used.text.strip() == '0'
def test_add_autocomplete_feature(player_wizard, browser): # noqa """As a player, if I start typing in the name field and class field, I can select suggested items in the dropdown.""" print(('As a player, if I start typing in the name field and class field, ' 'I can select suggested items in the dropdown.')) 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, has_search_term=False) ut.select_from_autocomplete(feature, 'class_', browser, has_search_term=False) assert feature.name.get_attribute( 'value').strip() == 'Rage (Barbarian, Lvl. 1)' assert feature.class_.get_attribute('value').strip() == 'Barbarian'
def test_add_feature(player_wizard, browser): # noqa """As a player, I can add a feature.""" print('As a player, I can add a feature.') feature = features.FeatureAddModal(browser) features_table = features.FeaturesTable(browser) tabs = Tabs(browser) tabs.skills.click() features_table.add.click() feature.name = 'Add Name' feature.class_ = 'Add Class' feature.level = 1 feature.description = 'Add Description' feature.tracked.click() feature.max_.clear() feature.max_ = 4 feature.short_rest.click() assert feature.name.get_attribute('value') == 'Add Name' assert feature.class_.get_attribute('value') == 'Add Class' assert feature.level.get_attribute('value') == '1' assert feature.description.get_attribute('value') == 'Add Description' assert feature.max_.get_attribute('value') == '4' assert 'active' in feature.short_rest.get_attribute('class') feature.add.click() row = ut.get_table_row(features_table, 'table', 1) assert row.class_ == 'Add Class' assert row.feature == 'Add Name'
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() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( EC.element_to_be_clickable((By.ID, features_table.add_id))) features_table.add.click() ut.select_from_autocomplete(feature, 'name', browser, has_search_term=False) feature.add.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until(modal_finished_closing()) rows = ut.get_table_rows(features_table, 'table', values=False) rows[0][0].click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( EC.element_to_be_clickable((By.ID, feature_tabs.edit_id))) feature_tabs.edit.click() 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_ = 4 feature_edit.short_rest.click() assert feature_edit.name.get_attribute('value').strip() == 'Edited Name' assert feature_edit.class_.get_attribute('value').strip() == 'Edited Class' assert feature_edit.level.get_attribute('value').strip() == '1' assert feature_edit.description.get_attribute( 'value').strip() == 'Edited Description' assert feature_edit.max_.get_attribute('value').strip() == '4' assert 'active' in feature_edit.short_rest.get_attribute('class').strip() feature_edit.done.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until(modal_finished_closing()) row = ut.get_table_row(features_table, 'table', 1) assert row.feature.strip() == 'Edited Name' assert row.class_.strip() == 'Edited Class'
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'
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'
def test_feature_ogl_pre_pop(player_wizard, browser): # noqa """As a player, if I select from feature name field, OGL data auto-completes and the remaining fields pre-populate.""" print( 'As a player, if I select from feature name field, OGL data auto-completes and the remaining fields pre-populate.' ) 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() row = ut.get_table_row(features_table, 'table', 1) assert row.class_ == 'Barbarian' assert row.feature == 'Rage'
def test_add_feature(player_wizard, browser): # noqa """As a player, I can add a feature.""" print('As a player, I can add a feature.') feature = features.FeatureAddModal(browser) features_table = features.FeaturesTable(browser) tracked_table = tracked.TrackedTable(browser) tabs = Tabs(browser) tabs.skills.click() features_table.add.click() feature.name = 'Add Name' feature.class_ = 'Add Class' feature.level = 1 feature.description = 'Add Description' feature.tracked.click() feature.max_ = 4 feature.short_rest.click() assert feature.name.get_attribute('value').strip() == 'Add Name' assert feature.class_.get_attribute('value').strip() == 'Add Class' assert feature.level.get_attribute('value').strip() == '1' assert feature.description.get_attribute( 'value').strip() == 'Add Description' assert feature.max_.get_attribute('value').strip() == '4' assert 'active' in feature.short_rest.get_attribute('class').strip() feature.add.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until(table_has_data(features_table)) row = ut.get_table_row(features_table, 'table', 1) assert tracked_table.tracked1_name.text.strip() == 'Add Name' assert tracked_table.tracked1_max.text.strip() == '4' assert row.class_.strip() == 'Add Class' assert row.feature.strip() == 'Add Name'
def test_data_persists(player_wizard, browser): # noqa """As a player, all changes I make to features, feats, traits, proficiencies, tracking, and skills persist after I refresh the browser.""" print(('As a player, all changes I make to features, feats, traits, ' 'proficiencies, tracking, and skills persist after I refresh the ' 'browser.')) feature = features.FeatureAddModal(browser) features_table = features.FeaturesTable(browser) feat = feats.FeatAddModal(browser) feats_table = feats.FeatsTable(browser) trait = traits.TraitAddModal(browser) traits_table = traits.TraitsTable(browser) tracked_table = tracked.TrackedTable(browser) proficiency_add = proficiency.ProficiencyAddModal(browser) proficiency_table = proficiency.ProficiencyTable(browser) skills_table = skills.SkillsTable(browser) skills_edit = skills.SkillsEditModal(browser) tabs = Tabs(browser) tabs.skills.click() features_table.add.click() feature.name = 'Add Name' feature.class_ = 'Add Class' feature.level = 1 feature.description = 'Add Description' feature.tracked.click() feature.max_ = 4 feature.short_rest.click() time.sleep(1) feature.add.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until(modal_finished_closing()) feats_table.add.click() ut.select_from_autocomplete(feat, 'name', browser, has_search_term=False) feat.name.send_keys(Keys.TAB) feat.add.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until(modal_finished_closing()) traits_table.add.click() ut.select_from_autocomplete(trait, 'name', browser, has_search_term=False) trait.name.send_keys(Keys.TAB) trait.add.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until(modal_finished_closing()) proficiency_table.add.click() ut.select_from_autocomplete(proficiency_add, 'name', browser, has_search_term=False) proficiency_add.name.send_keys(Keys.TAB) proficiency_add.add.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until(modal_finished_closing()) acrobatics = ut.get_table_row(skills_table, 'table', values=False) acrobatics[0].click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until( EC.element_to_be_clickable((By.XPATH, skills_edit.half_xpath))) skills_edit.half.click() skills_edit.done.click() WebDriverWait(browser, DEFAULT_WAIT_TIME).until(modal_finished_closing()) browser.refresh() WebDriverWait(browser, DEFAULT_WAIT_TIME).until(table_has_data(features_table)) row = ut.get_table_row(features_table, 'table', 1) assert tracked_table.tracked1_name.text.strip() == 'Add Name' assert tracked_table.tracked1_max.text.strip() == '4' assert row.class_.strip() == 'Add Class' assert row.feature.strip() == 'Add Name' row = ut.get_table_row(feats_table, 'table', 1) assert row.feat.strip() == 'Grappler' row = ut.get_table_row(traits_table, 'table', 1) assert row.race.strip() == 'Dragonborn' assert row.trait.strip() == 'Ability Score Increase' row = ut.get_table_row(proficiency_table, 'table', 1) assert row.type.strip() == 'Languages' assert row.proficiency.strip() == 'Abyssal'