예제 #1
0
 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")
예제 #2
0
 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")
예제 #3
0
    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)
예제 #4
0
    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)
예제 #5
0
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
예제 #6
0
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)
예제 #7
0
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)
예제 #8
0
    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()
        ]
예제 #9
0
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
예제 #10
0
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
예제 #11
0
def test_type_for_season_number_should_be_a_number():
    with pytest.raises(TypeError):
        media.Episode("First", 1, "1")
예제 #12
0
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
예제 #13
0
 def test_should_not_assign_number(self):
     episode = mediamodel.Episode("Title", 1)
     with self.assertRaises(AttributeError):
         episode.number = 2
예제 #14
0
 def test_create_episode_with_season(self):
     episode = mediamodel.Episode("Title", 1, 1)
     self.assertIsNotNone(episode)
예제 #15
0
 def test_title_accessible(self):
     episode = mediamodel.Episode("Title", 1)
     self.assertEqual(episode.title, "Title")
예제 #16
0
 def test_should_not_assign_title(self):
     episode = mediamodel.Episode("Title", 1)
     with self.assertRaises(AttributeError):
         episode.title = 'Other title'
예제 #17
0
 def test_without_season_should_be_none(self):
     episode = mediamodel.Episode("Title", 1)
     self.assertIsNone(episode.season)
예제 #18
0
 def test_shouldnt_assign_season(self):
     episode = mediamodel.Episode("Title", 1)
     with self.assertRaises(AttributeError):
         episode.season = 2
예제 #19
0
 def test_season_accessible(self):
     episode = mediamodel.Episode("Title", 1, 2)
     self.assertEqual(episode.season, 2)
예제 #20
0
 def test_title_cannot_be_empty(self):
     with self.assertRaises(ValueError):
         mediamodel.Episode('', 1)
예제 #21
0
 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)
예제 #23
0
 def test_title_should_be_string_or_raise_error(self):
     with self.assertRaises(ValueError):
         mediamodel.Episode(10, 1)