Created
October 4, 2011 06:24
-
-
Save adaptives/1261014 to your computer and use it in GitHub Desktop.
LPTHW Exercise 47 - Unit Testing With nose
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Room(object): | |
def __init__(self, name, description): | |
self.name = name | |
self.description = description | |
self.paths = {} | |
def go(self, direction): | |
return self.paths.get(direction, None) | |
def add_paths(self, paths): | |
self.paths.update(paths) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from nose.tools import * | |
from ex47.game import Room | |
def setup(): | |
print "SETUP!" | |
def teardown(): | |
print "TEAR DOWN!" | |
def test_room(): | |
gold = Room("GoldRoom", | |
"""This room has gold in it you can grab. There's a door to the north.""") | |
assert_equal(gold.name, "GoldRoom") | |
assert_equal(gold.paths, {}) | |
def test_room_paths(): | |
center = Room("Center", "Test room in the center.") | |
north = Room("North", "Test room in the north.") | |
south = Room("South", "Test room in the south.") | |
center.add_paths({'north':north, 'south':south}) | |
assert_equal(center.go('north'), north) | |
assert_equal(center.go('south'), south) | |
def test_map(): | |
start = Room("Start", "You can go west and down a hole.") | |
west = Room("Trees", "There are trees here, you can go east.") | |
down = Room("Dungeon", "It's dark down here, you can go up.") | |
start.add_paths({'west':west, 'down':down}) | |
west.add_paths({'east':start}) | |
down.add_paths({'up': start}) | |
assert_equal(start.go('west'), west) | |
assert_equal(start.go('west').go('east'), start) | |
assert_equal(start.go('down').go('up'), start) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment