Beispiel #1
0
arya.inventory.append("sword")
arya.inventory.append("mask")
jon.inventory.append("dragon glass")


print(len(arya.inventory))
print(len(jon.inventory))

# arya should hava a `greet` method
# and when I call it with `arya.greet()`, it should return 
# "Hello,I am Arya Stark. You killed my father. Prepare to die."
print(arya.greet())

# arya should hava a `greet` method
# and when I call it with `arya.greet(jon)`, it should return 
# "Hello, Jon Snow, I am Arya Stark. You killed my father. Prepare to die."
print(arya.greet(jon))

# I should be able to create a Hero instance
bronn = Hero("Bronn of the Blackwater", "bron.gif")
mittens = Monster("Mittens the Kitten", "mitten.jpeg")

# Hero should be able to `.greet` Character
print(bronn.greet(arya))
print(jon.greet(bronn))

# Monster should be able to `.groan` a Character or Hero
print(mittens.groan(arya))
print(mittens.groan(bronn))
print(bronn.attack(mittens))
Beispiel #2
0
class TestCharacter(unittest.TestCase):
    def __init__(self, *args, **kwargs):
        super(TestCharacter, self).__init__(*args, **kwargs)
        self.hero = Hero("Joe")
        self.villain = Mob("Shmoe")
        self.item_hero = Item(name="Sword of Superiorness", attack_bonus=10, defense_bonus=-1)
        self.item_villain = Item(name="Shield of Losers", attack_bonus=0, defense_bonus=1)

    def test_check_names(self):
        self.assertEqual(self.hero.name, "Joe")
        self.assertEqual(self.villain.name, "Shmoe")

    def test_blank_name_mob(self):
        my_mob = Mob()
        self.assertEqual(type(my_mob.name), str)
        self.assertGreater(len(my_mob.name), 0)

    def test_get_stats(self):
        hero_stats = [{'name': 'Joe'}, {'items': []}, {'attack_strength': 2}, {'defense': 1}, {'health': 100}, {'exp': 0}, {'isMOB': False}, {'persist': True}]
        mob_stats = [{'name': 'Shmoe'}, {'items': []}, {'attack_strength': 2}, {'defense': 1}, {'health': 100}, {'exp': 0}, {'isMOB': True}, {'persist': False}]
        self.assertGreater(len(self.hero.get_stats()),0)
        self.assertGreater(len(self.villain.get_stats()),0)
        #self.assertEqual(self.hero.get_stats(), hero_stats)
        #self.assertEqual(self.villain.get_stats(), mob_stats)

    def test_attack(self):
        self.assertEqual(self.hero.attack(self.villain), 99)
        self.assertEqual(self.hero.attack(self.villain), 98)
        self.assertEqual(self.hero.attack(self.villain), 97)

        # check if item bonuses work
        self.villain.items.append(self.item_villain)
        self.assertEqual(self.hero.attack(self.villain), 97)
        self.hero.items.append(self.item_hero)
        self.assertEqual(self.hero.attack(self.villain), 87)
        # check multiple item bonuses
        self.hero.items.append(self.item_hero)
        self.assertEqual(self.hero.attack(self.villain), 67)
        # validate hero's health hasn't changed
        self.assertEqual(self.hero.health, 100)
        # check out negative defense
        self.assertEqual(self.villain.attack(self.hero), 97)

    def test_heal(self):
        ''' A basic unit test '''
        self.hero.heal(10)
        self.assertEqual(self.hero.health, 110)

    def test_isalive(self):
        hero = Hero(name="Stu")
        self.assertTrue(hero.is_alive())
        hero.health = 0
        self.assertFalse(hero.is_alive())
        hero.health = 100
        self.assertTrue(hero.is_alive())
        hero.take_damage(102)
        self.assertFalse(hero.is_alive())

    def test_check_items(self):
        self.hero.items.append(self.item_hero)
        self.hero.items.append(self.item_hero)
        self.assertEqual(len(self.hero.items), 2)

    def test_librarian(self):
        lib = Librarian()
        my_mob = lib.create_mob()
        self.assertEqual(type(my_mob.name), str)
        self.assertGreater(len(my_mob.name), 0)

    def test_encoding(self):
        my_mob = MyEncoder().encode(Mob())
        self.assertNotEqual(my_mob, " ")
        self.assertEqual(type(json.loads(my_mob)), dict)

    def test_librarian_flask(self):
        my_mob = MyEncoder().encode(Mob())
        test = Mob(my_mob)
        my_name = json.loads(my_mob)['name']
        new_mob = Mob(name=my_name)

    def test_combat(self):
        hero = Hero()
        villain = Mob()
        lib = Librarian()
        winner = lib.combat_time(hero, villain)
        # print "WINNER WINNER", winner, villain.is_alive(), hero.is_alive(), hero.health
        self.assertTrue(hero.is_alive())
        self.assertEqual(hero, winner)

    def test_librarian_create_mob(self):
        lib = Librarian()
        mob = lib.create_mob()
        self.assertTrue(mob)
    def test_hero_creation(self):
        hero = Hero(attack_strength=100)
        self.assertTrue(hero)
Beispiel #3
0
# after adding 2 items to inventory
# length of inventory should == 2

arya.inventory.append('sword')
arya.inventory.append('mask')

print(len(arya.inventory))

# arya should have  a`greet` method
# when called, it should return:
# "Hello, Jon Stark. I am Arya Stark. I am awesome."
print(arya.greet(jon))
# arya should have  a`greet` method
# when called, it should return:
# "Hello, I am Arya Stark. I am awesome."
print(arya.greet())

# I should be able to create a hero instance
bronn = Hero("Bronn of the Blackwater", "bron.png")
ramsay_snow = Monster("The Bastard of Bolton", "ramsay_snow.png")

# Hero should be able to greet Character
print(bronn.greet(arya))
print(jon.greet(bronn))
print(bronn.attack(ramsay_snow))

#
walker = Monster()
# expects to greet "ugggh"
print(walker.greet())