def test_tiles(self): import skb.model as model from skb.model.game import ShiftyBoard sb = ShiftyBoard() sb.name = 'test_tiles' sb.dimensions = (10,10) for coli in range(0, len(sb)): for rowi in range(0, len(sb[coli])): if coli == rowi: sb[coli][rowi] = ShiftyBoard.TILE_GRAY elif coli > rowi: sb[coli][rowi] = ShiftyBoard.TILE_WHITE else: sb[coli][rowi] = ShiftyBoard.TILE_BLACK model.commit() sb = ShiftyBoard.query.get(name='test_tiles') for coli in xrange(0, len(sb)): for rowi in range(0, len(sb[coli])): if coli == rowi: assert sb[coli][rowi] == ShiftyBoard.TILE_GRAY elif coli > rowi: assert sb[coli][rowi] == ShiftyBoard.TILE_WHITE else: assert sb[coli][rowi] == ShiftyBoard.TILE_BLACK
def test_goals(self): import skb.model as model from skb.model.game import ShiftyBoard sb = ShiftyBoard() assert len(sb.goals) == 0 sb.name = 'test_goals' sb.dimensions = (3,3) sb.add_goal(ShiftyBoard.TILE_WHITE, 0, 0) sb.add_goal(ShiftyBoard.TILE_BLACK, 1, 1) with self.assertRaises(Exception): sb.add_goal(ShiftyBoard.TILE_GRAY, 2, 2) with self.assertRaises(Exception): sb.add_goal(ShiftyBoard.TILE_WHITE, 3, 3) with self.assertRaises(Exception): sb.add_goal(ShiftyBoard.TILE_WHITE, -1, -1) model.commit() sb = ShiftyBoard.query.get(name='test_goals') assert sb.goals[0]['goal_color'] == ShiftyBoard.TILE_WHITE and sb.goals[0]['col'] == 0 and sb.goals[0]['row'] == 0 assert sb.goals[1]['goal_color'] == ShiftyBoard.TILE_BLACK and sb.goals[1]['col'] == 1 and sb.goals[1]['row'] == 1
def index_post(self): jsboard = loads(request.body) board = ShiftyBoard.query.get(name=jsboard['name']) if board: abort(409, detail='Name already in use: %s' % board.name) board = ShiftyBoard() try: board.name = jsboard['name'] board.dimensions = (jsboard['dimensions']['cols'], jsboard['dimensions']['rows']) board.start = (jsboard['start'][0], jsboard['start'][1]) for tile, col, row in jsboard['goals']: board.add_goal(tile, col=col, row=row) for col in range(0, board.dimensions[0]): for row in range(0, board.dimensions[1]): board[col][row] = jsboard['tiles'][col][row] except Exception as e: abort(406, 'Configuration error for board: %s' % e) model.commit() redirect('/boards/%s/' % board.name, code=303)
def test_dimensions(self): import skb.model as model from skb.model.game import ShiftyBoard sb = ShiftyBoard() assert len(sb) == 1 assert len(sb[0]) == 1 sb.name = 'test_set_dimensions' sb.dimensions = (5,5) model.commit() sb = ShiftyBoard.query.get(name='test_set_dimensions') assert sb.dimensions == (5,5) assert len(sb) == 5 for col in sb: assert len(col) == 5
def test_start_location(self): import skb.model as model from skb.model.game import ShiftyBoard sb = ShiftyBoard() sb.name = 'test_start_location' sb.dimensions = (3,3) sb.start_location = (1,1) model.commit() sb = ShiftyBoard.query.get(name='test_start_location') assert sb.start_location == (1,1) with self.assertRaises(Exception): assert sb.start_location == (-1,-1) with self.assertRaises(Exception): assert sb.start_location == (3,3)