eyeD3 / src / test / test_plugins.py

# -*- coding: utf-8 -*-
################################################################################
#  Copyright (C) 2011  Travis Shirk <travis@pobox.com>
#
#  This program is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2 of the License, or
#  (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software
#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#
################################################################################
from nose.tools import *
from eyed3.plugins import *
from eyed3.plugins import examples, classic
from .compat import *


def test_load():
    plugins = load()
    assert_in("classic", plugins.keys())
    assert_in("genres", plugins.keys())

    assert_equal(load("classic"), plugins["classic"])
    assert_equal(load("genres"), plugins["genres"])

    assert_equal(load("classic", reload=True).__class__.__name__,
                 plugins["classic"].__class__.__name__)
    assert_equal(load("genres", reload=True).__class__.__name__,
                 plugins["genres"].__class__.__name__)

    assert_is_none(load("DNE"))

def test_Plugin():
    import argparse
    from eyed3.utils import FileHandler
    class MyPlugin(Plugin):
        pass

    p = MyPlugin(argparse.ArgumentParser())
    assert_is_not_none(p.arg_group)

    # In reality, this is parsed args
    p.start("dummy_args", "dummy_config")
    assert_equal(p.args, "dummy_args")
    assert_equal(p.config, "dummy_config")

    assert_is_none(p.handleFile("f.txt"))
    assert_is_none(p.handleDone())
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.