class TestAdvanced(TestCase): def setUp(self): self.advanced_player = Advanced('User1') def test_attributes_are_set(self): self.assertEqual('User1', self.advanced_player.username) self.assertEqual(250, self.advanced_player.health) def test_set_username_with_empty_string__raises(self): with self.assertRaises(ValueError) as ex: self.advanced_player.username(player=Advanced("")) self.assertEqual("Player's username cannot be an empty string.", str(ex.exception)) def test_check_class_name(self): self.assertEqual("Advanced", self.advanced_player.__class__.__name__)
def test_username_setter(self): adv = Advanced('test') adv.username = '******' self.assertEqual('new', adv.username)
def test_username_raise(self): adv = Advanced('test') with self.assertRaises(ValueError) as ex: adv.username = '' self.assertEqual(str(ex.exception), 'Player\'s username cannot be an empty string.')
def test_username_invalid_data_should_raise_error(self): player = Advanced("Dave") with self.assertRaises(ValueError): player.username = ""
def test_username_valid_data_should_work_correctly(self): player = Advanced("Dave") player.username = "******" self.assertEqual(player.username, "Cool")
def test_username_change(self): a = Advanced("test") a.username = '******' self.assertEqual(a.username, 'new name')