def test_number_must_be_integer_compatible(self): episode = mediamodel.Episode('Title', 1) self.assertEqual(episode.number, 1) episode = mediamodel.Episode('Title', "1") self.assertEqual(episode.number, 1) with self.assertRaises(ValueError): mediamodel.Episode('Title', "un")
def test_season_must_be_integer_compatible(self): episode = mediamodel.Episode('Title', 1, 2) self.assertEqual(episode.season, 2) episode = mediamodel.Episode('Title', 1, "2") self.assertEqual(episode.season, 2) with self.assertRaises(ValueError): mediamodel.Episode('Title', 1, "un")
def test_added_episodes_cannot_be_duplicates(self): """ Il ne doit pas être possible d'ajouter deux même épisodes, c'est à dire qu'ils ont le même numéro. Faire passer ce test va provoquer une erreur dans le test *test_can_add_value_to_episodes* puisque pour l'écriture de ce dernier, nous ajoutions juste une chaine de caractères. Dans une approche *TDD*, il est courant de devoir revenir sur un test qui doit évoluer en fonction d'autres. Corrigez donc le test précédent. """ season = mediamodel.Season(1) season.add(mediamodel.Episode("Rose", 1, 1)) with self.assertRaises(ValueError): # Doit échouer car même épisode season.add(mediamodel.Episode("Rose", 1, 1)) with self.assertRaises( ValueError): # Doit échouer car seul le numéro compte season.add(mediamodel.Episode("Daleks", 1, 1)) with self.assertRaises( ValueError): # Doit échouer car seul le numéro compte season.add(mediamodel.Episode("Cybermen", 1)) with self.assertRaises( ValueError): # Doit échouer car seul le numéro compte season.add(mediamodel.Episode("The Next Doctor", 1, 5))
def test_create_episode_without_season(self): episode = mediamodel.Episode("Title", 1) self.assertIsNotNone(episode)
def test_title_cannot_be_empty(self): with self.assertRaises(ValueError): mediamodel.Episode('', 1)
def test_title_should_be_string_or_raise_error(self): with self.assertRaises(ValueError): mediamodel.Episode(10, 1)
def test_without_season_should_be_none(self): episode = mediamodel.Episode("Title", 1) self.assertIsNone(episode.season)
def test_shouldnt_assign_season(self): episode = mediamodel.Episode("Title", 1) with self.assertRaises(AttributeError): episode.season = 2
def test_season_accessible(self): episode = mediamodel.Episode("Title", 1, 2) self.assertEqual(episode.season, 2)
def test_should_not_assign_number(self): episode = mediamodel.Episode("Title", 1) with self.assertRaises(AttributeError): episode.number = 2
def test_number_accessible(self): episode = mediamodel.Episode("Title", 1) self.assertEqual(episode.number, 1)
def test_should_not_assign_title(self): episode = mediamodel.Episode("Title", 1) with self.assertRaises(AttributeError): episode.title = 'Other title'
def test_title_accessible(self): episode = mediamodel.Episode("Title", 1) self.assertEqual(episode.title, "Title")
def test_should_not_alter_episodes(self): episodes = self.show.episodes() episodes.append(mediamodel.Episode('Intruder', 2)) self.assertEqual(len(self.show.episodes()), 0)