Пример #1
0
def mock_ytdl_get_all_extractors(include_generic):
    extractors = [EM('foo'), EM('bar'), EM('baz')]
    if include_generic:
        extractors.append(EM('generic'))
    return extractors
Пример #2
0
def mock_machinery_load_extractors_by_peqn(name):
    if name == 'ns1/plugin':
        return [EM('ns1/plugin:foo'), EM('ns1/plugin:bar')]
    return [EM(name)]
Пример #3
0
def mock_machinery_load_all_extractors():
    return [EM('ns1/plugin:foo'), EM('ns1/plugin:bar'), EM('ns2/plugin')]
Пример #4
0
def mock_ytdl_get_extractors_by_name(name):
    return [EM(name)]
Пример #5
0
            'dl_plus.ytdl.get_extractors_by_name',
            mock_ytdl_get_extractors_by_name,
        )
        mp.setattr(
            'dl_plus.extractor.machinery.load_all_extractors',
            mock_machinery_load_all_extractors,
        )
        mp.setattr(
            'dl_plus.extractor.machinery.load_extractors_by_peqn',
            mock_machinery_load_extractors_by_peqn,
        )
        yield


@pytest.mark.parametrize('names,expected', [
    (['bar', 'bar', 'bar'], [EM('bar')]),
    (['baz', ':builtins:'], [EM('baz'), EM('foo'),
                             EM('bar')]),
    (['ns2/plugin', ':plugins:', 'foo'], [
        EM('ns2/plugin'),
        EM('ns1/plugin:foo'),
        EM('ns1/plugin:bar'),
        EM('foo'),
    ]),
    (['ns1/plugin', 'ns1/plugin:foo'], [
        EM('ns1/plugin:foo'),
        EM('ns1/plugin:bar'),
    ]),
])
def test(mock_loaders, names, expected):
    assert get_extractors(names) == expected
Пример #6
0
    try:
        extractors = request.getfixturevalue('extractors')
    except pytest.FixtureLookupError:
        marker = request.node.get_closest_marker('extractors')
        if marker:
            extractors = marker.args
    if extractors is not None:
        monkeypatch.setattr('dl_plus.ytdl.get_all_extractors',
                            lambda **kw: extractors)


@pytest.mark.parametrize(
    'extractors,expected',
    [
        # 0
        ([EM('foo'), EM('bar')], {
            'foo': EM('foo'),
            'bar': EM('bar'),
        }),
        # 1
        ([EM('foo:sub1'), EM('foo:sub2'),
          EM('bar')], {
              'foo': {
                  'sub1': EM('foo:sub1'),
                  'sub2': EM('foo:sub2'),
              },
              'bar': EM('bar'),
          }),
        # 2
        ([EM('foo'), EM('foo:sub'), EM('bar')], {
            'foo': {