Beispiel #1
0
def test_boss_relic_info():
    mock_run_00 = create_mock.sts_run_data('0123456789.run_data')
    mock_run_01 = create_mock.sts_run_data('0123456788.run_data')
    mock_run_02 = create_mock.sts_run_data('0123456787.run_data')
    mock_run_03 = create_mock.sts_run_data('0123456786.run_data')

    mock_boss_relic_info_00 = json.loads(
        '{"boss_relics":[{"not_picked":["Lizard Tail","Hovering Kite","Calling Bell"]},'
        '{"not_picked":["Runic Dome","Ring of the Serpent","Coffee Dripper"]}]}')

    mock_boss_relic_info_01 = json.loads(
        '{"boss_relics":[{"not_picked":["Ring of the Serpent","Sozu"],"picked":"Ectoplasm"},'
        '{"not_picked":["Runic Dome","Velvet Choker","Coffee Dripper"]}]}')

    mock_boss_relic_info_02 = json.loads(
        '{"boss_relics":[{"not_picked":["Philosopher\u0027s Stone","Pandora\u0027s Box","Ectoplasm"]}]}')

    mock_boss_relic_info_03 = json.loads(
        '{"boss_relics":[{"not_picked":["Sozu","Black Star"],"picked":"Fusion Hammer"},'
        '{"not_picked":["Calling Bell","Eternal Feather"],"picked":"Busted Crown"}]}')

    store_run_lists.boss_relic_info(mock_boss_relic_info_00, mock_run_00)
    store_run_lists.boss_relic_info(mock_boss_relic_info_01, mock_run_01)
    store_run_lists.boss_relic_info(mock_boss_relic_info_02, mock_run_02)
    store_run_lists.boss_relic_info(mock_boss_relic_info_03, mock_run_03)

    # 00
    assert "No boss relic was picked for Act One" == mock_run_00.boss_relic_picked_act1
    assert ["Lizard Tail", "Hovering Kite", "Calling Bell"] == mock_run_00.boss_relic_not_picked_act1
    assert "No boss relic was picked for Act Two" == mock_run_00.boss_relic_picked_act2
    assert ["Runic Dome", "Ring of the Serpent", "Coffee Dripper"] == mock_run_00.boss_relic_not_picked_act2

    # 01
    assert "Ectoplasm" == mock_run_01.boss_relic_picked_act1
    assert ["Ring of the Serpent", "Sozu"] == mock_run_01.boss_relic_not_picked_act1
    assert "No boss relic was picked for Act Two" == mock_run_01.boss_relic_picked_act2
    assert ["Runic Dome", "Velvet Choker", "Coffee Dripper"] == mock_run_01.boss_relic_not_picked_act2

    # 02
    assert "No boss relic was picked for Act One" == mock_run_02.boss_relic_picked_act1
    assert ["Philosopher\u0027s Stone", "Pandora\u0027s Box", "Ectoplasm"] == mock_run_02.boss_relic_not_picked_act1
    assert not mock_run_02.boss_relic_picked_act2
    assert not mock_run_02.boss_relic_not_picked_act2

    # 03
    assert "Fusion Hammer" == mock_run_03.boss_relic_picked_act1
    assert ["Sozu", "Black Star"] == mock_run_03.boss_relic_not_picked_act1
    assert "Busted Crown" == mock_run_03.boss_relic_picked_act2
    assert ["Calling Bell", "Eternal Feather"] == mock_run_03.boss_relic_not_picked_act2
Beispiel #2
0
def test_master_deck_all(mock_config_list):
    
    mock_run = create_mock.sts_run_data('0123456789.run_data')
    mock_json = json.loads(
        '{"master_deck":["Strike_R+1","Strike_R","Strike_R","Strike_R","Defend_R",'
        '"Defend_R+1","Defend_R+1","Defend_R+1","Bash","Whirlwind",'
        '"Anger","Headbutt","Rampage","Metallicize","Pommel Strike"]}')
    mock_config_item = store_run_lists.master_deck_all(mock_run, mock_json)

    assert 'MasterDeck' == mock_config_item.config_item_name
    assert 'Master Deck:' in mock_config_item.console_message

    assert "    Defend_R+1\n" \
           "    Bash\n" \
           "    Whirlwind\n" in mock_config_item.console_message

    assert list_to_enumerated_dict(mock_config_list).get('MasterDeck') == mock_config_item.priority

    assert "Strike_R+1" in mock_run.master_deck
    assert "Strike_R" in mock_run.master_deck
    assert "Defend_R" in mock_run.master_deck
    assert "Defend_R+1" in mock_run.master_deck
    assert "Bash" in mock_run.master_deck
    assert "Whirlwind" in mock_run.master_deck
    assert "Anger" in mock_run.master_deck
    assert "Headbutt" in mock_run.master_deck
    assert "Rampage" in mock_run.master_deck
    assert "Metallicize" in mock_run.master_deck
    assert "Pommel Strike" in mock_run.master_deck
Beispiel #3
0
def test_items_purchased_all(mock_config_list):
    mock_run = create_mock.sts_run_data('0123456789.run_data')
    mock_json = json.loads(
        '{"items_purchased":["Metallicize",'
        '"Armaments",'
        '"Bottled Lightning",'
        '"Metallicize",'
        '"Energy Potion"]}')
    mock_config_item = store_run_lists.items_purchased_all(mock_run, mock_json)

    assert 'ItemsPurchased' == mock_config_item.config_item_name
    assert 'Items Purchased:' in mock_config_item.console_message

    assert "    Metallicize\n" \
           "    Armaments\n" \
           "    Bottled Lightning\n" \
           "    Metallicize\n" \
           "    Energy Potion" in mock_config_item.console_message

    assert list_to_enumerated_dict(mock_config_list).get('ItemsPurchased') == mock_config_item.priority

    assert "Metallicize" in mock_run.items_purchased
    assert "Armaments" in mock_run.items_purchased
    assert "Bottled Lightning" in mock_run.items_purchased
    assert "Energy Potion" in mock_run.items_purchased
Beispiel #4
0
def test_card_choices():
    mock_run = create_mock.sts_run_data('0123456789.run_data')
    mock_card_choices = json.loads(
        '{"card_choices":[{"not_picked":["Body Slam","Cleave"],"picked":"Uppercut","floor":1},'
        '{"not_picked":["Iron Wave","Bloodletting"],"picked":"Pommel Strike","floor":2},'
        '{"not_picked":["Twin Strike","Thunderclap"],"picked":"Iron Wave","floor":4},'
        '{"not_picked":["Havoc","Thunderclap","Iron Wave"],"picked":"SKIP","floor":10},'
        '{"not_picked":["Perfected Strike","Flex","Fire Breathing"],"picked":"SKIP","floor":12}]}'
    )

    store_run_lists.card_choices(mock_card_choices, mock_run)

    assert mock_run.card_choices[0].floor == 1
    assert mock_run.card_choices[0].picked == "Uppercut"
    assert ["Body Slam", "Cleave"] == mock_run.card_choices[0].not_picked

    assert mock_run.card_choices[1].floor == 2
    assert mock_run.card_choices[1].picked == "Pommel Strike"
    assert ["Iron Wave", "Bloodletting"] == mock_run.card_choices[1].not_picked

    assert mock_run.card_choices[2].floor == 4
    assert mock_run.card_choices[2].picked == "Iron Wave"
    assert ["Twin Strike", "Thunderclap"] == mock_run.card_choices[2].not_picked

    assert mock_run.card_choices[3].floor == 10
    assert mock_run.card_choices[3].picked == "SKIP"
    assert ["Havoc", "Thunderclap", "Iron Wave"] == mock_run.card_choices[3].not_picked

    assert mock_run.card_choices[4].floor == 12
    assert mock_run.card_choices[4].picked == "SKIP"
    assert ["Perfected Strike", "Flex", "Fire Breathing"] == mock_run.card_choices[4].not_picked
Beispiel #5
0
def test_damage_taken(mock_config_list):
    mock_run = create_mock.sts_run_data('0123456789.run_data')
    mock_json = json.loads(
        '{"damage_taken":[{"damage":10,"enemies":"Cultist","floor":1,"turns":5},'
        '{"damage":8,"enemies":"Jaw Worm","floor":2,"turns":5},'
        '{"damage":0,"enemies":"2 Louse","floor":3,"turns":4}]}')
    mock_config_item = store_run_lists.damage_taken(mock_run, mock_json)

    assert 'DamageTaken' == mock_config_item.config_item_name
    assert "Damage Taken:" in mock_config_item.console_message
    assert "  Floor: 2\n" \
           "    Enemies: Jaw Worm\n" \
           "    Turns: 5\n" \
           "    Damage: 8\n" in mock_config_item.console_message
    assert list_to_enumerated_dict(mock_config_list).get('DamageTaken') == mock_config_item.priority

    assert 10 == mock_run.damage_taken[0].damage
    assert "Cultist" == mock_run.damage_taken[0].enemies
    assert 1 == mock_run.damage_taken[0].floor
    assert 5 == mock_run.damage_taken[0].turns

    assert 8 == mock_run.damage_taken[1].damage
    assert "Jaw Worm" == mock_run.damage_taken[1].enemies
    assert 2 == mock_run.damage_taken[1].floor
    assert 5 == mock_run.damage_taken[1].turns

    assert 0 == mock_run.damage_taken[2].damage
    assert "2 Louse" == mock_run.damage_taken[2].enemies
    assert 3 == mock_run.damage_taken[2].floor
    assert 4 == mock_run.damage_taken[2].turns
Beispiel #6
0
def test_potions_obtained():
    mock_run = create_mock.sts_run_data('0123456789.run_data')
    mock_potions_obtained = json.loads(
        '{"potions_obtained":[{"floor":3,"key":"Block Potion"},'
        '{"floor":7,"key":"AttackPotion"},'
        '{"floor":14,"key":"LiquidBronze"},'
        '{"floor":18,"key":"Weak Potion"},'
        '{"floor":31,"key":"EntropicBrew"}]}')

    store_run_lists.potions_obtained(mock_potions_obtained, mock_run)

    assert mock_run.potions_obtained[0].floor == 3
    assert mock_run.potions_obtained[0].key == "Block Potion"

    assert mock_run.potions_obtained[1].floor == 7
    assert mock_run.potions_obtained[1].key == "AttackPotion"

    assert mock_run.potions_obtained[2].floor == 14
    assert mock_run.potions_obtained[2].key == "LiquidBronze"

    assert mock_run.potions_obtained[3].floor == 18
    assert mock_run.potions_obtained[3].key == "Weak Potion"

    assert mock_run.potions_obtained[4].floor == 31
    assert mock_run.potions_obtained[4].key == "EntropicBrew"
Beispiel #7
0
def test_campfire_choices():
    mock_run = create_mock.sts_run_data('0123456789.run_data')
    mock_campfire_choice = json.loads(
        '{"campfire_choices":[{"data":"True Grit","floor":6.0,"key":"SMITH"},'
        '{"floor":8.0,"key":"REST"},'
        '{"data":"Bash","floor":10.0,"key":"SMITH"},'
        '{"data":"Pommel Strike","floor":12.0,"key":"SMITH"},'
        '{"data":"Feel No Pain","floor":15.0,"key":"SMITH"}]}'
    )

    store_run_lists.campfire_choice(mock_campfire_choice, mock_run)

    assert mock_run.campfire_choices[0].floor == 6.0
    assert mock_run.campfire_choices[0].key == "SMITH"
    assert mock_run.campfire_choices[0].data == "True Grit"

    assert mock_run.campfire_choices[1].floor == 8.0
    assert mock_run.campfire_choices[1].key == "REST"

    assert mock_run.campfire_choices[2].floor == 10.0
    assert mock_run.campfire_choices[2].key == "SMITH"
    assert mock_run.campfire_choices[2].data == "Bash"

    assert mock_run.campfire_choices[3].floor == 12.0
    assert mock_run.campfire_choices[3].key == "SMITH"
    assert mock_run.campfire_choices[3].data == "Pommel Strike"

    assert mock_run.campfire_choices[4].floor == 15.0
    assert mock_run.campfire_choices[4].key == "SMITH"
    assert mock_run.campfire_choices[4].data == "Feel No Pain"
Beispiel #8
0
def test_check_config_item_values():
    mock_config = create_mock.all_true_config()
    mock_run = create_mock.sts_run_data('0123456789.run_data')
    mock_json = json.loads(create_mock.sample_raw_json())
    mock_config_items = check_config.print_single_run(mock_config, mock_run,
                                                      mock_json)

    assert list == type(mock_config_items)
Beispiel #9
0
def test_potions_floor_spawned():
    mock_run = create_mock.sts_run_data('0123456789.run_data')
    mock_potions_floor_spawned = json.loads('{"potions_floor_spawned":[3,7,14,18,31,35,38,47]}')

    store_run_lists.potions_floor_spawned(mock_potions_floor_spawned, mock_run)

    assert mock_run.potions_floor_spawned[0] == 3
    assert mock_run.potions_floor_spawned[1] == 7
    assert mock_run.potions_floor_spawned[2] == 14
    assert mock_run.potions_floor_spawned[3] == 18
    assert mock_run.potions_floor_spawned[4] == 31
    assert mock_run.potions_floor_spawned[5] == 35
    assert mock_run.potions_floor_spawned[6] == 38
    assert mock_run.potions_floor_spawned[7] == 47
Beispiel #10
0
def test_potions_floor_usage():
    mock_run = create_mock.sts_run_data('0123456789.run_data')
    mock_potions_floor_usage = json.loads('{"potions_floor_usage":[7,16,29,33,33,33,44,48,50]}')

    store_run_lists.potions_floor_usage(mock_potions_floor_usage, mock_run)

    assert mock_run.potions_floor_usage[0] == 7
    assert mock_run.potions_floor_usage[1] == 16
    assert mock_run.potions_floor_usage[2] == 29
    assert mock_run.potions_floor_usage[3] == 33
    assert mock_run.potions_floor_usage[4] == 33
    assert mock_run.potions_floor_usage[5] == 33
    assert mock_run.potions_floor_usage[6] == 44
    assert mock_run.potions_floor_usage[7] == 48
    assert mock_run.potions_floor_usage[8] == 50
Beispiel #11
0
def test_current_hp_per_floor(mock_config_list):
    mock_run = create_mock.sts_run_data('0123456789.run_data')
    mock_json = json.loads('{"current_hp_per_floor":[32,30,36,36,22,46,46,46,46,39,39,35,32,32,56,0]}')
    mock_config_item = store_run_lists.current_hp_per_floor(mock_run, mock_json)

    assert 'CurrentHpPerFloor' == mock_config_item.config_item_name
    assert "Current HP per Floor:" in mock_config_item.console_message
    assert "    Floor: 0 || Current HP: 32" in mock_config_item.console_message
    assert "    Floor: 5 || Current HP: 46" in mock_config_item.console_message
    assert "    Floor: 15 || Current HP: 0" in mock_config_item.console_message
    assert list_to_enumerated_dict(mock_config_list).get('CurrentHpPerFloor') == mock_config_item.priority

    assert 32 in mock_run.current_hp_per_floor
    assert 46 in mock_run.current_hp_per_floor
    assert 0 in mock_run.current_hp_per_floor
Beispiel #12
0
def test_relic():
    mock_run = create_mock.sts_run_data('0123456789.run_data')
    mock_relics = json.loads(
        '{"relics":["Burning Blood",'
        '"Red Skull",'
        '"Paper Phrog",'
        '"Champion Belt",'
        '"Mark of Pain"]}')

    store_run_lists.relics(mock_relics, mock_run)
    assert "Burning Blood" in mock_run.relics
    assert "Red Skull" in mock_run.relics
    assert "Paper Phrog" in mock_run.relics
    assert "Champion Belt" in mock_run.relics
    assert "Mark of Pain" in mock_run.relics
Beispiel #13
0
def test_path_taken():
    mock_run = create_mock.sts_run_data('0123456789.run_data')
    mock_path_taken = json.loads(
        '{"path_taken":["M","?","M","?","?","R","E","M","T","?","?","R","?","M","R","BOSS",'
        '"M","M","M","?","$","R","?","R","T","?","?","E","$","M","R","BOSS",'
        '"M","M","?","M","?","R","M","?","T","?","?","?","M","M","R","BOSS"]}'
    )

    store_run_lists.path_taken(mock_path_taken, mock_run)

    assert "M" in mock_run.path_taken
    assert "?" in mock_run.path_taken
    assert "$" in mock_run.path_taken
    assert "E" in mock_run.path_taken
    assert "R" in mock_run.path_taken
    assert "BOSS" in mock_run.path_taken
Beispiel #14
0
def test_path_per_floor():
    mock_run = create_mock.sts_run_data('0123456789.run_data')
    mock_path_per_floor = json.loads(
        '{"path_per_floor":["M","?","M","?","?","R","E","M","T","M","?","R","T","M","R","B",'
        'null,"M","M","M","?","$","R","?","R","T","?","?","E","$","M","R","B",'
        'null,"M","M","?","M","?","R","M","T","T","M","?","$","M","M","R","B"]}'
    )

    store_run_lists.path_per_floor(mock_path_per_floor, mock_run)

    assert "M" in mock_run.path_per_floor
    assert "?" in mock_run.path_per_floor
    assert "R" in mock_run.path_per_floor
    assert "E" in mock_run.path_per_floor
    assert "T" in mock_run.path_per_floor
    assert "B" in mock_run.path_per_floor
    assert None in mock_run.path_per_floor
Beispiel #15
0
def test_event_choices(mock_config_list):
    mock_run = create_mock.sts_run_data('0123456789.run_data')
    mock_json = json.loads(
        '{"event_choices":[{"event_name":"Liars Game","player_choice":"disagreed","floor":3.0,"damage_taken":0.0},'
        '{"event_name":"Scrap Ooze","player_choice":"success","floor":4.0,"damage_taken":7.0},'
        '{"event_name":"The Joust","player_choice":"Bet on Murderer","floor":19.0,"damage_taken":0.0},'
        '{"event_name":"Vampires","player_choice":"Became a vampire","floor":30.0,"damage_taken":0.0},'
        '{"event_name":"WeMeetAgain","player_choice":"Card","floor":31.0,"damage_taken":0.0}]}')
    mock_config_item = store_run_lists.event_choices(mock_run, mock_json)

    assert 'EventChoices' == mock_config_item.config_item_name
    assert "Event Choices:" in mock_config_item.console_message
    assert "  Floor: 4.0\n" \
           "    Event Name: Scrap Ooze\n" \
           "      Player Choice: success\n" \
           "      Damage Taken: 7.0\n" in mock_config_item.console_message
    assert list_to_enumerated_dict(mock_config_list).get('EventChoices') == mock_config_item.priority


    assert "Liars Game" == mock_run.event_choices[0].event_name
    assert "disagreed" == mock_run.event_choices[0].player_choice
    assert 3.0 == mock_run.event_choices[0].floor
    assert 0.0 == mock_run.event_choices[0].damage_taken

    assert "Scrap Ooze" == mock_run.event_choices[1].event_name
    assert "success" == mock_run.event_choices[1].player_choice
    assert 4.0 == mock_run.event_choices[1].floor
    assert 7.0 == mock_run.event_choices[1].damage_taken

    assert "The Joust" == mock_run.event_choices[2].event_name
    assert "Bet on Murderer" == mock_run.event_choices[2].player_choice
    assert 19.0 == mock_run.event_choices[2].floor
    assert 0.0 == mock_run.event_choices[2].damage_taken

    assert "Vampires" == mock_run.event_choices[3].event_name
    assert "Became a vampire" == mock_run.event_choices[3].player_choice
    assert 30.0 == mock_run.event_choices[3].floor
    assert 0.0 == mock_run.event_choices[3].damage_taken

    assert "WeMeetAgain" == mock_run.event_choices[4].event_name
    assert "Card" == mock_run.event_choices[4].player_choice
    assert 31.0 == mock_run.event_choices[4].floor
    assert 0.0 == mock_run.event_choices[4].damage_taken
Beispiel #16
0
def test_relic_obtained():
    mock_run = create_mock.sts_run_data('0123456789.run_data')
    mock_obtained_relics = json.loads(
        '{"relics_obtained":[{"floor":7,"key":"Red Skull"},'
        '{"floor":9,"key":"Paper Phrog"},'
        '{"floor":13,"key":"Champion Belt"},'
        '{"floor":21,"key":"Mark of Pain"}]}')

    store_run_lists.relics_obtained(mock_obtained_relics, mock_run)

    assert mock_run.relics_obtained[0].floor == 7
    assert mock_run.relics_obtained[0].key == "Red Skull"

    assert mock_run.relics_obtained[1].floor == 9
    assert mock_run.relics_obtained[1].key == "Paper Phrog"

    assert mock_run.relics_obtained[2].floor == 13
    assert mock_run.relics_obtained[2].key == "Champion Belt"

    assert mock_run.relics_obtained[3].floor == 21
    assert mock_run.relics_obtained[3].key == "Mark of Pain"
Beispiel #17
0
def test_max_hp_per_floor_all():
    mock_run = create_mock.sts_run_data('0123456789.run_data')
    mock_max_hp_per_floor_all = json.loads(
        '{"max_hp_per_floor":[88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,'
        '88,88,92,96,96,100,104,108,108,108,108,108,112,112,116,'
        '116,116,116,116,120,120,120,120,124,124,124,124,124,124,128,128,128,132,132,132]}'
    )

    store_run_lists.max_hp_per_floor_all(mock_max_hp_per_floor_all, mock_run)

    assert 88 in mock_run.max_hp_per_floor
    assert 92 in mock_run.max_hp_per_floor
    assert 96 in mock_run.max_hp_per_floor
    assert 100 in mock_run.max_hp_per_floor
    assert 104 in mock_run.max_hp_per_floor
    assert 108 in mock_run.max_hp_per_floor
    assert 112 in mock_run.max_hp_per_floor
    assert 116 in mock_run.max_hp_per_floor
    assert 120 in mock_run.max_hp_per_floor
    assert 124 in mock_run.max_hp_per_floor
    assert 128 in mock_run.max_hp_per_floor
    assert 132 in mock_run.max_hp_per_floor
Beispiel #18
0
def test_gold_per_floor_all(mock_config_list):
    mock_run = create_mock.sts_run_data('0123456789.run_data')
    mock_json = json.loads(
        '{"gold_per_floor":[111, 126, 3, 18, 18, 18, 18, 18, 18, 53, 53, 80, 30, 41, 41, '
        '143, 143, 159, 170, 180, 196, 121, 121, 176, 187, 213, 231, 231, 246, 246, '
        '273, 273, 373, 373, 387, 397, 40, 54, 54]}')
    mock_config_item = store_run_lists.gold_per_floor_all(mock_run, mock_json)

    # Test presentation of when gold is gained
    assert 'GoldPerFloor' == mock_config_item.config_item_name
    assert "Gold per Floor:" in mock_config_item.console_message
    assert "    Floor: 1\n" \
           "      Gold: 111\n" \
           "      Diff: +12\n" \
           "        Total Gained: +12\n" \
           "        Total Spent/Lost: 0\n" in mock_config_item.console_message

    # Test presentation of when gold is spent/lost
    assert "    Floor: 3\n" \
           "      Gold: 3\n" \
           "      Diff: -123\n" \
           "        Total Gained: +27\n" \
           "        Total Spent/Lost: -123\n" in mock_config_item.console_message

    # Test presentation of when there is no change
    assert "    Floor: 5\n" \
           "      Gold: 18  (No Change)\n" \
           "        Total Gained: +42\n" \
           "        Total Spent/Lost: -123\n" in mock_config_item.console_message

    assert list_to_enumerated_dict(mock_config_list).get('GoldPerFloor') == mock_config_item.priority

    assert 111 in mock_run.gold_per_floor
    assert 18 in mock_run.gold_per_floor
    assert 3 in mock_run.gold_per_floor
    assert 0 not in mock_run.gold_per_floor
    assert -1 not in mock_run.gold_per_floor
def test_current_run():
    mock_run = create_mock.sts_run_data('0123456789.run_data')
    assert mock_run.starting_gold == 99