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_episodes_are_ordered(self): season = mediamodel.Season(1) season.add(mediamodel.Episode("Second Episode", 2, 1)) season.add(mediamodel.Episode("First Episode", 1, 1)) episodes = season.episodes self.assertEqual(episodes[0].number, 1) self.assertEqual(episodes[1].number, 2)
def test_should_not_alter_episodes(self): season = mediamodel.Season(1) season.add(mediamodel.Episode("First Episode", 1, 1)) season.add(mediamodel.Episode("Second Episode", 2, 1)) self.assertEqual(len(season.episodes), 2) episodes = season.episodes episodes.append(mediamodel.Episode("Intruder", 3, 1)) self.assertEqual(len(season.episodes), 2)
def test_episode_should_be_immuable(): episode = media.Episode("First", 1, 2) with pytest.raises(AttributeError): episode.title = "new title" with pytest.raises(AttributeError): episode.number = 2 with pytest.raises(AttributeError): episode.title = 1
def add_episode(title, number): episode = mediamodel.Episode(title, number) episode_list.append(episode) episode_list.sort(key=lambda x: x.number) ep_index = episode_list.index(episode) episodes_frame.add_element(title, ep_index)
def add_episode(title, number): """ Ajoute un épisode à la collection gérée. Ajoute également cet épisode au composant `episode_frame`. :param title: Titre de l'épisode à ajouter :param number: Numéro de l'épisode à ajouter """ episode = mediamodel.Episode(title, int(number), 0) EPISODE_LIST.append(episode) EPISODE_LIST.sort(key=lambda x: x.number) ep_index = EPISODE_LIST.index(episode) EPISODES_FRAME.add_element(title, ep_index)
def get_episodes(self, season_number=None): """ Retourne une liste d'épisodes :return: liste d'objets de type mediamodel.Episode """ cur = self._connect.cursor() if season_number: cur.execute(SQL_GET_EPISODES_FOR_SEASON, (season_number, self._show_name, season_number)) else: cur.execute(SQL_GET_ALL_EPISODES, (self._show_name, )) return [ media.Episode(title, episode_number, season_number) for title, season_number, episode_number in cur.fetchall() ]
def test_episode_creation_with_all_fields(): episode = media.Episode("First", 1, 2) assert episode.title == "First" assert episode.number == 1 assert episode.season_number == 2
def test_how_episodes_should_be_equals(): first_episode = media.Episode("First", 1, 2) other_first_episode = media.Episode("Other", 1, 2) assert first_episode == other_first_episode assert first_episode != 1
def test_type_for_season_number_should_be_a_number(): with pytest.raises(TypeError): media.Episode("First", 1, "1")
def test_episode_season_should_be_positive(): with pytest.raises(ValueError) as e: media.Episode("First Episode", 1, -1) assert e.match("Episode season number" ) # Test que le message correspond à l'erreur attendue
def test_should_not_assign_number(self): episode = mediamodel.Episode("Title", 1) with self.assertRaises(AttributeError): episode.number = 2
def test_create_episode_with_season(self): episode = mediamodel.Episode("Title", 1, 1) self.assertIsNotNone(episode)
def test_title_accessible(self): episode = mediamodel.Episode("Title", 1) self.assertEqual(episode.title, "Title")
def test_should_not_assign_title(self): episode = mediamodel.Episode("Title", 1) with self.assertRaises(AttributeError): episode.title = 'Other title'
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_title_cannot_be_empty(self): with self.assertRaises(ValueError): mediamodel.Episode('', 1)
def test_number_accessible(self): episode = mediamodel.Episode("Title", 1) self.assertEqual(episode.number, 1)
def test_should_not_alter_episodes(self): episodes = self.show.get_episodes() episodes.append(mediamodel.Episode('Intruder', 2)) self.assertEqual(len(self.show.get_episodes()), 0)
def test_title_should_be_string_or_raise_error(self): with self.assertRaises(ValueError): mediamodel.Episode(10, 1)