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))
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)
# 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())