def test_game_fire(self, MockShip): ship = MockShip() ship.is_dead.return_value = False rules = Rules(mode='standard', opponent='human') player1 = Player('p1') player2 = Player('p2') player2.ships.append(ship) g = Game(1, player1, player2, rules) ship.is_hit.return_value = True expected = True actual = g.fire(Coordinates('a', 1)) self.assertEqual(expected, actual) g = Game(1, player1, player2, rules) ship.is_hit.return_value = False expected = False actual = g.fire(Coordinates('b', 3)) self.assertEqual(expected, actual) expected = False actual = g.fire(Coordinates('i', 10)) self.assertEqual(expected, actual)
def test_game_next_player(self): rules = Rules(mode='standard', opponent='human') p1 = Player('p1') p2 = Player('p2') g = Game(1, p1, p2, rules) expected = p2 actual = g.next_player() self.assertEqual(expected, actual)
def edit_rule(id): data = data_defaults['rule']['edit'] if request.method == 'GET': r = Rules().get_rule(id) data['rule'] = r[id] return render_template('rule_form.html', data=data) if request.method == 'POST': _input = g.form.copy() _input['id'] = id ok, messages = fswww().validate_rule_properties(_input) if not ok: for m in messages: flash(m) return render_template('rule_form.html', data={'rule': _input}) id = Rules().update_rule(_input) if id is not False: url = '/rules/edit/%d' % id flash('rule updated') return redirect(url) flash('unable to update rule') return render_template('rule_form.html', data={'rule': _input})
def test_is_game_over(self, MockShip): ship = MockShip() ship.is_dead.return_value = False player1 = Player('p1') player2 = Player('p2') rules = Rules(mode='standard', opponent='human') g = Game(1, player1, player2, rules) self.assertTrue(g.is_game_over()) player1.ships.append(ship) g = Game(1, player1, player2, rules) self.assertTrue(g.is_game_over()) player2.ships.append(ship) g = Game(1, player1, player2, rules) self.assertFalse(g.is_game_over())
def create_rule(): data = data_defaults['rule']['create'] if request.method == 'GET': return render_template('rule_form.html', data=data) if request.method == 'POST': _input = g.form.copy() _input['modified_by'] = g.current_user['id'] ok, messages = fswww().validate_rule_properties(_input) if not ok: for m in messages: flash(m) return render_template('rule_form.html', data={'rule': _input}) id = Rules().create_rule(_input) if id is not False: url = '/rules/edit/%d' % id flash('rule created') return redirect(url) flash('unable to create rule') return render_template('rule_form.html', data={'rule': _input})
def new_game(): player1 = Player("Player 1") player2 = Player("Player 2") rules = Rules(mode='standard', opponent='human') new_g = Game(1, player1, player2, rules) return new_g
def delete_rule(id): if request.method == 'POST': data = Rules().delete_rule(id)
def list_rules(): rules = Rules().get_all_rules() data = {'rules': rules} return render_template('rules.html', data=data)