示例#1
0
 def setUp(self):
     self.media_list = MediaList(profile=self.profile)
     self.gen = self.media_list.populate(('Dad.mpg',))
     next(self.gen)
     next(self.gen)
示例#2
0
class TestMedia:
    """Class for testing media.py module."""

    conv_lib = ConversionLib()
    profile = ConversionProfile(prober=conv_lib.prober_path)
    profile.update(new_quality='DVD Fullscreen 352x480 (4:3)')

    def setUp(self):
        self.media_list = MediaList(profile=self.profile)
        self.gen = self.media_list.populate(('Dad.mpg',))
        next(self.gen)
        next(self.gen)

    def test_populate(self):
        """Test MediaList.populate()."""
        assert len(self.media_list) == 1 == self.media_list.length
        assert self.media_list[0].input_path == 'Dad.mpg'

    def test_delete_file(self):
        """Test MediaList.delete_file()."""
        # Be sure there is one element in the list
        assert len(self.media_list) == 1
        self.media_list.delete_file(position=0)
        assert len(self.media_list) == 0

    def test_get_file_object(self):
        """Test MediaList.get_file()."""
        assert isinstance(self.media_list.get_file(0), _MediaFile)

    def test_get_file_name(self):
        """Test MediaList.get_file_name()."""
        assert self.media_list.get_file_name(position=0) == 'Dad'

    def test_get_file_name_with_extension(self):
        """Test MediaList.get_file_name() with extension."""
        assert self.media_list.get_file_name(position=0,
                                             with_extension=True) == 'Dad.mpg'

    def test_get_file_path(self):
        """Test MediaList.get_file_path()."""
        assert self.media_list.get_file_path(position=0) == 'Dad.mpg'

    def test_get_file_status(self):
        """Test MediaList.get_file_status()."""
        assert self.media_list.get_file_status(position=0) == STATUS.todo

    def test_set_file_status(self):
        """Test MediaList.set_file_status()."""
        self.media_list.set_file_status(0, STATUS.done)
        assert self.media_list.get_file_status(position=0) == STATUS.done

    def test_get_file_info(self):
        """Test MediaList.get_file_info()."""
        assert self.media_list.get_file_info(0, 'filename') == 'Dad.mpg'

    def test_running_file_name(self):
        """Test MediaList.running_file_name()."""
        self.media_list.position = 0
        assert self.media_list.running_file_name() == 'Dad'

    def test_running_file_info(self):
        """Test MediaList.running_file_info()."""
        self.media_list.position = 0
        assert self.media_list.running_file_info('filename') == 'Dad.mpg'

    def test_running_file_status(self):
        """Test MediaList.running_file_status()."""
        assert self.media_list.running_file_status == STATUS.todo

    def test_set_running_file_status(self):
        """Test MediaList.running_file_status."""
        self.media_list.running_file_status = STATUS.done
        assert self.media_list.running_file_status == STATUS.done

    def test_running_file_output_name(self):
        """Test MediaList.running_file_output_name()."""
        assert self.media_list.running_file_output_name('.', False) == 'Dad.mpg'

    def test_is_exhausted_true(self):
        """Test MediaList.is_exhausted == True."""
        self.media_list.position = 0
        assert self.media_list.is_exhausted

    def test_is_exhausted_false(self):
        """Test MediaList.is_exhausted == False."""
        self.media_list.position = -1
        assert not self.media_list.is_exhausted

    def test_all_stopped_true(self):
        """Test MediaList.all_stopped == True."""
        self.media_list.set_file_status(0, 'Stopped')
        assert self.media_list.all_stopped

    def test_all_stopped_false(self):
        """Test MediaList.all_stopped == False."""
        self.media_list.set_file_status(0, 'Todo')
        assert not self.media_list.all_stopped

    def test_length(self):
        """Test MediaList.length."""
        assert self.media_list.length == 1

    def test_duration(self):
        """Test MediaList.duration()."""
        nose.tools.assert_almost_equal(self.media_list.duration, 120.72)

    @nose.tools.raises(StopIteration)
    def test_add_file_twice(self):
        """Testing adding the same file twice."""
        assert self.media_list.length == 1
        gen = self.media_list.populate(('Dad.mpg',))
        next(gen)

    def test_build_conversion_cmd(self):
        """Test _MediaFile.build_conversion_cmd."""
        assert self.media_list.get_file(0).build_conversion_cmd(
            output_dir='.',
            tagged_output=True,
            subtitle=True,
            target_quality='DVD Fullscreen 352x480 (4:3)') == ['-i', 'Dad.mpg',
                                                               '-f', 'dvd',
                                                               '-target',
                                                               'ntsc-dvd',
                                                               '-vcodec',
                                                               'mpeg2video', '-r',
                                                               '29.97', '-s',
                                                               '352x480',
                                                               '-aspect', '4:3',
                                                               '-b:v',
                                                               '4000k', '-mbd',
                                                               'rd',
                                                               '-cmp', '2',
                                                               '-subcmp',
                                                               '2', '-acodec',
                                                               'mp2',
                                                               '-b:a', '192k',
                                                               '-ar',
                                                               '48000', '-ac', '2',
                                                               '-threads', '3',
                                                               '-y',
                                                               './[DVDF]-Dad.mpg']

    def test_running_file_conversion_cmd(self):
        """Test MediaList.running_file_conversion_cmd()."""
        assert self.media_list.running_file_conversion_cmd(
            output_dir='.',
            tagged_output=True,
            subtitle=True,
            target_quality='DVD Fullscreen 352x480 (4:3)') == ['-i', 'Dad.mpg',
                                                               '-f', 'dvd',
                                                               '-target',
                                                               'ntsc-dvd',
                                                               '-vcodec',
                                                               'mpeg2video', '-r',
                                                               '29.97', '-s',
                                                               '352x480',
                                                               '-aspect', '4:3',
                                                               '-b:v',
                                                               '4000k', '-mbd',
                                                               'rd',
                                                               '-cmp', '2',
                                                               '-subcmp',
                                                               '2', '-acodec',
                                                               'mp2',
                                                               '-b:a', '192k',
                                                               '-ar',
                                                               '48000', '-ac', '2',
                                                               '-threads', '3',
                                                               '-y',
                                                               './[DVDF]-Dad.mpg']

    @nose.tools.raises(PermissionError)
    def test_running_file_conversion_cmd_permission_error(self):
        """Test MediaList.running_file_conversion_cmd() -> PermissionError."""
        self.media_list.running_file_conversion_cmd(
            output_dir='/',
            tagged_output=True,
            subtitle=True,
            target_quality='DVD Fullscreen 352x480 (4:3)')

    def test_clear(self):
        """Test MediaList.clear()."""
        self.media_list.clear()
        assert not self.media_list

    def test_populate_files_count(self):
        """Test MediaList.populate() yield amount of video files."""
        media_list = MediaList(profile=self.profile)
        gen = media_list.populate(('Dad.mpg',))
        assert next(gen) == 1

    def test_populate_first_file_name(self):
        """Test MediaList.populate() yield first video file name."""
        media_list = MediaList(profile=self.profile)
        gen = media_list.populate(('Dad.mpg',))
        next(gen)
        assert next(gen) == 'Dad.mpg'
示例#3
0
 def test_populate_first_file_name(self):
     """Test MediaList.populate() yield first video file name."""
     media_list = MediaList(profile=self.profile)
     gen = media_list.populate(('Dad.mpg',))
     next(gen)
     assert next(gen) == 'Dad.mpg'
示例#4
0
 def test_populate_files_count(self):
     """Test MediaList.populate() yield amount of video files."""
     media_list = MediaList(profile=self.profile)
     gen = media_list.populate(('Dad.mpg',))
     assert next(gen) == 1
示例#5
0
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#   See the License for the specific language governing permissions and
#   limitations under the License.
"""This module provides tests for media.py module."""

import nose

from videomorph.converter.media import MediaList
from videomorph.converter.profile import ConversionProfile
from videomorph.converter import PROBER
from videomorph.converter import STATUS

profile = ConversionProfile(prober=PROBER.ffprobe)
profile.update(new_quality='DVD Fullscreen (4:3)')

media_list = MediaList(profile=profile)


# Set of tests for media.MediaList class
def test_populate():
    """Test populate."""
    gen = media_list.populate(('Dad.mpg', ))
    next(gen)
    next(gen)
    assert len(media_list) == 1 == media_list.length
    assert media_list[0].input_path == 'Dad.mpg'
    media_list.clear()


def test_delete_file():
    """Test delete_file."""
示例#6
0
 def setup(self):
     """Setup method."""
     self.media_list = MediaList(profile=self.profile)
     self.gen = self.media_list.populate(('Dad.mpg', ))
     next(self.gen)
     next(self.gen)