Esempio n. 1
0
    async def test_metadata_tv_playing(self):
        self.usecase.tv_playing(
            paused=False,
            series_name="tv",
            total_time=40,
            position=10,
            season_number=12,
            episode_number=4,
            content_identifier="identifier",
        )

        with faketime("pyatv", 0):
            playing = await self.playing(series_name="tv")
            self.assertEqual(playing.media_type, MediaType.Video)
            self.assertEqual(playing.device_state, DeviceState.Playing)
            self.assertEqual(playing.series_name, "tv")
            self.assertEqual(playing.total_time, 40)
            self.assertEqual(playing.position, 10)
            self.assertEqual(playing.season_number, 12)
            self.assertEqual(playing.episode_number, 4)
            self.assertEqual(playing.content_identifier, "identifier")

        self.assertFeatures(
            FeatureState.Available,
            FeatureName.SeriesName,
            FeatureName.TotalTime,
            FeatureName.Position,
            FeatureName.SeasonNumber,
            FeatureName.EpisodeNumber,
            FeatureName.ContentIdentifier,
        )
Esempio n. 2
0
    async def test_seek_in_playing_media(self):
        self.usecase.video_playing(
            paused=False, title="dummy", total_time=40, position=10
        )

        with faketime("pyatv", 0):
            await self.atv.remote_control.set_position(30)
            playing = await self.playing(position=30)
            self.assertEqual(playing.position, 30)
Esempio n. 3
0
    async def test_metadata_video_playing(self):
        self.usecase.video_playing(
            paused=False, title="video", total_time=40, position=10
        )

        with faketime("pyatv", 0):
            playing = await self.playing(title="video")
            self.assertEqual(playing.media_type, MediaType.Video)
            self.assertEqual(playing.device_state, DeviceState.Playing)
            self.assertEqual(playing.title, "video")
            self.assertEqual(playing.total_time, 40)
            self.assertEqual(playing.position, 10)
Esempio n. 4
0
    async def test_metadata_video_paused(self):
        self.usecase.video_playing(
            paused=True, title="dummy", total_time=100, position=3
        )

        with faketime("pyatv", 0):
            playing = await self.playing(title="dummy")
            self.assertEqual(playing.media_type, MediaType.Video)
            self.assertEqual(playing.device_state, DeviceState.Paused)
            self.assertEqual(playing.title, "dummy")
            self.assertEqual(playing.total_time, 100)
            self.assertEqual(playing.position, 3)
Esempio n. 5
0
    async def test_item_updates(self):
        self.usecase.video_playing(
            False, 'dummy', 100, 1, identifier='id', artist='some artist')

        with faketime('pyatv', 0):
            await self.playing(title='dummy')

            # Trigger update of single item by chaging title
            self.usecase.change_metadata(title='foobar', identifier='id')
            playing = await self.playing(title='foobar')

            # Make sure other metadata is untouched
            self.assertEqual(playing.title, 'foobar')
            self.assertEqual(playing.artist, 'some artist')
            self.assertEqual(playing.total_time, 100)
            self.assertEqual(playing.position, 1)
Esempio n. 6
0
    async def test_item_updates(self):
        self.usecase.video_playing(
            False, "dummy", 100, 1, identifier="id", artist="some artist"
        )

        with faketime("pyatv", 0):
            await self.playing(title="dummy")

            # Trigger update of single item by changing title
            self.usecase.change_metadata(title="foobar", identifier="id")
            playing = await self.playing(title="foobar")

            # Make sure other metadata is untouched
            self.assertEqual(playing.title, "foobar")
            self.assertEqual(playing.artist, "some artist")
            self.assertEqual(playing.total_time, 100)
            self.assertEqual(playing.position, 1)
Esempio n. 7
0
    async def test_metadata_music_playing(self):
        self.usecase.music_playing(paused=False,
                                   title='music',
                                   artist='test1',
                                   album='test2',
                                   total_time=2,
                                   position=1,
                                   genre='genre')

        with faketime('pyatv', 0):
            playing = await self.playing(title='music')
            self.assertEqual(playing.media_type, MediaType.Music)
            self.assertEqual(playing.device_state, DeviceState.Playing)
            self.assertEqual(playing.title, 'music')
            self.assertEqual(playing.artist, 'test1')
            self.assertEqual(playing.album, 'test2')
            self.assertEqual(playing.genre, 'genre')
            self.assertEqual(playing.total_time, 2)
            self.assertEqual(playing.position, 1)
Esempio n. 8
0
    async def test_metadata_music_paused(self):
        self.usecase.music_playing(paused=True,
                                   title='music',
                                   artist='artist',
                                   album='album',
                                   total_time=222,
                                   position=49,
                                   genre='genre')

        with faketime('pyatv', 0):
            playing = await self.playing(title='music')
            self.assertEqual(playing.media_type, MediaType.Music)
            self.assertEqual(playing.device_state, DeviceState.Paused)
            self.assertEqual(playing.title, 'music')
            self.assertEqual(playing.artist, 'artist')
            self.assertEqual(playing.album, 'album')
            self.assertEqual(playing.genre, 'genre')
            self.assertEqual(playing.total_time, 222)
            self.assertEqual(playing.position, 49)
Esempio n. 9
0
    async def run_script(self, script, *args):
        argv = [script] + list(args)
        inputs = "\n".join(self.inputs) + "\n"
        with capture_output(argv, inputs) as (out, err):
            udns_port = str(self.fake_udns.port)
            with patch.dict("os.environ", {"PYATV_UDNS_PORT": udns_port}):
                with faketime("pyatv", 0):
                    # Stub away port knocking and ignore result (not tested here)
                    with patch("pyatv.support.knock.knock") as mock_knock:

                        async def _no_action(*args):
                            pass

                        mock_knock.side_effect = _no_action

                        module = import_module(f"pyatv.scripts.{script}")
                        self.retcode = await module.appstart(self.loop)
                        self.stdout = out.getvalue()
                        self.stderr = err.getvalue()
Esempio n. 10
0
    async def test_metadata_tv_playing(self):
        self.usecase.tv_playing(
            paused=False,
            series_name="tv",
            total_time=40,
            position=10,
            season_number=12,
            episode_number=4,
        )

        with faketime("pyatv", 0):
            playing = await self.playing(series_name="tv")
            self.assertEqual(playing.media_type, MediaType.Video)
            self.assertEqual(playing.device_state, DeviceState.Playing)
            self.assertEqual(playing.series_name, "tv")
            self.assertEqual(playing.total_time, 40)
            self.assertEqual(playing.position, 10)
            self.assertEqual(playing.season_number, 12)
            self.assertEqual(playing.episode_number, 4)
Esempio n. 11
0
    async def test_metadata_music_playing(self):
        self.usecase.music_playing(
            paused=False,
            title="music",
            artist="test1",
            album="test2",
            total_time=2,
            position=1,
            genre="genre",
        )

        with faketime("pyatv", 0):
            playing = await self.playing(title="music")
            self.assertEqual(playing.media_type, MediaType.Music)
            self.assertEqual(playing.device_state, DeviceState.Playing)
            self.assertEqual(playing.title, "music")
            self.assertEqual(playing.artist, "test1")
            self.assertEqual(playing.album, "test2")
            self.assertEqual(playing.genre, "genre")
            self.assertEqual(playing.total_time, 2)
            self.assertEqual(playing.position, 1)
Esempio n. 12
0
    async def test_metadata_music_paused(self):
        self.usecase.music_playing(
            paused=True,
            title="music",
            artist="artist",
            album="album",
            total_time=222,
            position=49,
            genre="genre",
        )

        with faketime("pyatv", 0):
            playing = await self.playing(title="music")
            self.assertEqual(playing.media_type, MediaType.Music)
            self.assertEqual(playing.device_state, DeviceState.Paused)
            self.assertEqual(playing.title, "music")
            self.assertEqual(playing.artist, "artist")
            self.assertEqual(playing.album, "album")
            self.assertEqual(playing.genre, "genre")
            self.assertEqual(playing.total_time, 222)
            self.assertEqual(playing.position, 49)