mirror of
https://github.com/fergalmoran/picard.git
synced 2026-02-21 23:24:17 +00:00
@@ -16,10 +16,12 @@ known_picard=picard
|
||||
known_picard_ui=picard.ui
|
||||
known_qt=PyQt5
|
||||
known_resources=picard.resources
|
||||
known_test=test.*
|
||||
multi_line_output=3
|
||||
order_by_type=True
|
||||
sections=FUTURE,STDLIB,THIRDPARTY,QT,PICARD,LOCALFOLDER,RESOURCES,PICARD_UI
|
||||
sections=FUTURE,STDLIB,THIRDPARTY,QT,TEST,PICARD,LOCALFOLDER,RESOURCES,PICARD_UI
|
||||
skip_glob=**/picard/ui/ui_*.py
|
||||
skip=./tagger.py,picard/const/attributes.py,picard/const/countries.py,picard/resources.py,scripts/picard.in,picard/const/__init__.py,picard/formats/__init__.py,picard/coverart/providers/__init__.py
|
||||
not_skip=__init__.py
|
||||
use_parentheses=1
|
||||
lines_after_imports=2
|
||||
|
||||
@@ -13,7 +13,7 @@ env:
|
||||
global:
|
||||
- PIP_INSTALL="pip3 install"
|
||||
- INSTALL_DEPS="$PIP_INSTALL -r requirements.txt"
|
||||
- PYTEST="$PIP_INSTALL pytest pytest-randomly pytest-cov"
|
||||
- INSTALL_TEST_TOOLS="$PIP_INSTALL pytest pytest-randomly pytest-cov isort==4.3.10"
|
||||
- CODACY="$PIP_INSTALL codacy-coverage"
|
||||
- LIBDISCID="libdiscid0 libdiscid-dev"
|
||||
matrix:
|
||||
@@ -56,9 +56,11 @@ before_install:
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH; fi
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then source bin/activate; fi
|
||||
- "$INSTALL_DEPS"
|
||||
- "$PYTEST"
|
||||
- "$INSTALL_TEST_TOOLS"
|
||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then bash scripts/package-osx.sh; fi
|
||||
script: py.test -v --cov=picard --cov-report xml:coverage.xml
|
||||
script:
|
||||
- py.test -v --cov=picard --cov-report xml:coverage.xml
|
||||
- isort --check-only --diff --quiet $(git ls-tree -r --name-only $(git rev-parse HEAD) | grep "\\.py$")
|
||||
after_success:
|
||||
- if [ ! -z "${CODACY_PROJECT_TOKEN}" ]; then $CODACY; python-codacy-coverage -r coverage.xml;
|
||||
fi
|
||||
|
||||
@@ -10,7 +10,23 @@ As most of the other projects written in Python, we use the [PEP 8](https://www.
|
||||
|
||||
The general idea is to make the code within a project consistent and easy to interpret (for humans).
|
||||
|
||||
To fix or preserve imports style, one can use `isort -rc .` command (requires `isort` tool, see `.isort.cfg`).
|
||||
To fix or preserve imports style, one can use `isort -rc .` command (requires the [isort](https://github.com/timothycrosley/isort) tool, see `.isort.cfg`).
|
||||
|
||||
It is recommended to add a pre-commit hook to check whether imports in changed code
|
||||
follow the conventions. Add a file `.git/hooks/pre-commit` with the following content
|
||||
and make it executable:
|
||||
|
||||
```bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
PYFILES=$(git diff --cached --name-only | grep "\\.py$")
|
||||
|
||||
if [ ! -z "$PYFILES" ]; then
|
||||
set -e
|
||||
isort --check-only $PYFILES
|
||||
fi
|
||||
```
|
||||
|
||||
|
||||
### Docstrings
|
||||
|
||||
@@ -18,6 +34,7 @@ Unless the function is easy to understand quickly, it should probably have a doc
|
||||
|
||||
We recommend using ["Google-style" docstrings](https://google.github.io/styleguide/pyguide.html?showone=Comments#Comments) for writing docstrings.
|
||||
|
||||
|
||||
### Picard specific code
|
||||
|
||||
Picard has some auto-generated `picard/ui/ui_*.py` PyQt UI related files. Please do not change them directly. To modify them, use Qt-Designer to edit the `ui/*.ui` and use the command `python setup.py build_ui` to generate the corresponding `ui_*.py` files.
|
||||
@@ -26,6 +43,7 @@ We use snake-case to name all functions and variables except for the pre-generat
|
||||
|
||||
`gettext` and `gettext-noop` have been built-in the Picard code as `_` and `N_` respectively to provide support for internationalization/localization. You can use them without imports across all of Picard code. Make sure to mark all displayable strings for translation using `_` or `N_` as applicable. You can read more about python-gettext [here](https://docs.python.org/2/library/gettext.html).
|
||||
|
||||
|
||||
## Git Work-flow
|
||||
|
||||
We follow the "typical" GitHub workflow when contributing changes:
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
import re
|
||||
|
||||
|
||||
PICARD_ORG_NAME = "MusicBrainz"
|
||||
PICARD_APP_NAME = "Picard"
|
||||
PICARD_VERSION = (2, 2, 0, 'dev', 1)
|
||||
|
||||
@@ -29,9 +29,7 @@ from picard import (
|
||||
from picard.acoustid.json_helpers import parse_recording
|
||||
from picard.const import FPCALC_NAMES
|
||||
from picard.const.sys import IS_FROZEN
|
||||
from picard.util import (
|
||||
find_executable,
|
||||
)
|
||||
from picard.util import find_executable
|
||||
|
||||
|
||||
class AcoustIDClient(QtCore.QObject):
|
||||
|
||||
@@ -26,6 +26,7 @@ from picard import (
|
||||
log,
|
||||
)
|
||||
|
||||
|
||||
user_collections = {}
|
||||
|
||||
|
||||
|
||||
@@ -29,9 +29,7 @@ from picard import (
|
||||
version_from_string,
|
||||
version_to_string,
|
||||
)
|
||||
from picard.util import (
|
||||
LockableObject,
|
||||
)
|
||||
from picard.util import LockableObject
|
||||
|
||||
|
||||
class ConfigUpgradeError(Exception):
|
||||
|
||||
@@ -33,6 +33,7 @@ from picard.const import (
|
||||
DEFAULT_NUMBERED_SCRIPT_NAME,
|
||||
)
|
||||
|
||||
|
||||
# TO ADD AN UPGRADE HOOK:
|
||||
# ----------------------
|
||||
# add a function here, named after the version you want upgrade to
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
import sys
|
||||
|
||||
|
||||
IS_WIN = sys.platform == 'win32'
|
||||
IS_LINUX = sys.platform == 'linux'
|
||||
IS_MACOS = sys.platform == 'darwin'
|
||||
|
||||
@@ -40,7 +40,6 @@ from picard.coverart.providers import (
|
||||
CoverArtProvider,
|
||||
cover_art_providers,
|
||||
)
|
||||
|
||||
from picard.metadata import register_album_metadata_processor
|
||||
|
||||
|
||||
|
||||
@@ -45,6 +45,7 @@ from picard.util import (
|
||||
)
|
||||
from picard.util.scripttofilename import script_to_filename
|
||||
|
||||
|
||||
_datafiles = dict()
|
||||
_datafile_mutex = QMutex(QMutex.Recursive)
|
||||
|
||||
|
||||
@@ -59,6 +59,7 @@ from picard.util import webbrowser2
|
||||
from picard.ui.ui_provider_options_caa import Ui_CaaOptions
|
||||
from picard.ui.util import StandardButton
|
||||
|
||||
|
||||
CaaSizeItem = namedtuple('CaaSizeItem', ['thumbnail', 'label'])
|
||||
|
||||
_CAA_THUMBNAIL_SIZE_MAP = OrderedDict([
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
from picard.const import MB_ATTRIBUTES
|
||||
from picard.i18n import gettext_attr
|
||||
|
||||
|
||||
# list of types from http://musicbrainz.org/doc/Cover_Art/Types
|
||||
# order of declaration is preserved in selection box
|
||||
CAA_TYPES = []
|
||||
|
||||
@@ -44,6 +44,7 @@ from picard.util import (
|
||||
sanitize_date,
|
||||
)
|
||||
|
||||
|
||||
id3.GRP1 = compatid3.GRP1
|
||||
id3.TCMP = compatid3.TCMP
|
||||
id3.TSO2 = compatid3.TSO2
|
||||
|
||||
@@ -25,6 +25,7 @@ from mutagen.id3 import (
|
||||
TextFrame,
|
||||
)
|
||||
|
||||
|
||||
try:
|
||||
from mutagen.id3 import GRP1
|
||||
except ImportError:
|
||||
|
||||
@@ -29,6 +29,7 @@ from picard.const.sys import (
|
||||
IS_WIN,
|
||||
)
|
||||
|
||||
|
||||
builtins.__dict__['N_'] = lambda a: a
|
||||
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ from threading import Lock
|
||||
|
||||
from PyQt5 import QtCore
|
||||
|
||||
|
||||
_MAX_TAIL_LEN = 10**6
|
||||
|
||||
VERBOSITY_DEFAULT = logging.WARNING
|
||||
|
||||
@@ -28,6 +28,7 @@ from picard.util import (
|
||||
translate_from_sortname,
|
||||
)
|
||||
|
||||
|
||||
_artist_rel_types = {
|
||||
"arranger": "arranger",
|
||||
"audio": "engineer",
|
||||
|
||||
@@ -36,6 +36,7 @@ from picard.util import linear_combination_of_weights
|
||||
from picard.util.imagelist import ImageList
|
||||
from picard.util.tags import PRESERVED_TAGS
|
||||
|
||||
|
||||
MULTI_VALUED_JOINER = '; '
|
||||
|
||||
# lengths difference over this number of milliseconds will give a score of 0.0
|
||||
|
||||
@@ -45,6 +45,7 @@ from picard.const import (
|
||||
)
|
||||
import picard.plugins
|
||||
|
||||
|
||||
_suffixes = [s[0] for s in imp.get_suffixes()]
|
||||
_package_entries = ["__init__.py", "__init__.pyc", "__init__.pyo"]
|
||||
_extension_points = []
|
||||
|
||||
@@ -58,15 +58,15 @@ from picard.cluster import (
|
||||
)
|
||||
from picard.collection import load_user_collections
|
||||
from picard.config_upgrade import upgrade_config
|
||||
from picard.const import (
|
||||
USER_DIR,
|
||||
USER_PLUGIN_DIR,
|
||||
)
|
||||
from picard.const.sys import (
|
||||
IS_FROZEN,
|
||||
IS_MACOS,
|
||||
IS_WIN,
|
||||
)
|
||||
from picard.const import (
|
||||
USER_DIR,
|
||||
USER_PLUGIN_DIR,
|
||||
)
|
||||
from picard.dataobj import DataObject
|
||||
from picard.disc import Disc
|
||||
from picard.file import File
|
||||
|
||||
@@ -52,6 +52,7 @@ from picard.util.textencoding import asciipunct
|
||||
|
||||
from picard.ui.item import Item
|
||||
|
||||
|
||||
_TRANSLATE_TAGS = {
|
||||
"hip hop": "Hip-Hop",
|
||||
"synth-pop": "Synthpop",
|
||||
|
||||
@@ -31,6 +31,7 @@ from picard.const.sys import IS_MACOS
|
||||
from picard.formats import supported_formats
|
||||
from picard.util import find_existing_path
|
||||
|
||||
|
||||
_default_current_browser_path = QStandardPaths.writableLocation(QStandardPaths.HomeLocation)
|
||||
|
||||
|
||||
|
||||
@@ -18,7 +18,10 @@
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
from functools import partial
|
||||
from heapq import heappush, heappop
|
||||
from heapq import (
|
||||
heappop,
|
||||
heappush,
|
||||
)
|
||||
import os
|
||||
import re
|
||||
|
||||
|
||||
@@ -35,9 +35,7 @@ from picard import (
|
||||
from picard.album import Album
|
||||
from picard.cluster import Cluster
|
||||
from picard.const import PROGRAM_UPDATE_LEVELS
|
||||
from picard.const.sys import (
|
||||
IS_MACOS,
|
||||
)
|
||||
from picard.const.sys import IS_MACOS
|
||||
from picard.file import File
|
||||
from picard.formats import supported_formats
|
||||
from picard.plugin import ExtensionPoint
|
||||
@@ -83,6 +81,7 @@ from picard.ui.util import (
|
||||
find_starting_directory,
|
||||
)
|
||||
|
||||
|
||||
ui_init = ExtensionPoint()
|
||||
|
||||
|
||||
|
||||
@@ -45,6 +45,7 @@ from picard.util.tags import display_tag_name
|
||||
|
||||
from picard.ui.edittagdialog import EditTagDialog
|
||||
|
||||
|
||||
COMMON_TAGS = [
|
||||
"title",
|
||||
"artist",
|
||||
|
||||
@@ -30,6 +30,7 @@ from picard.ui.options import (
|
||||
register_options_page,
|
||||
)
|
||||
|
||||
|
||||
if AUTO_DETECT_DRIVES:
|
||||
from picard.ui.ui_options_cdlookup_select import Ui_CDLookupOptionsPage
|
||||
else:
|
||||
|
||||
@@ -18,9 +18,7 @@
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
from picard import config
|
||||
from picard.coverart.providers import (
|
||||
cover_art_providers,
|
||||
)
|
||||
from picard.coverart.providers import cover_art_providers
|
||||
|
||||
from picard.ui.checkbox_list_item import CheckboxListItem
|
||||
from picard.ui.moveable_list_view import MoveableListView
|
||||
|
||||
@@ -39,6 +39,7 @@ from picard.ui.options import (
|
||||
from picard.ui.ui_options_interface import Ui_InterfaceOptionsPage
|
||||
from picard.ui.util import enabledSlot
|
||||
|
||||
|
||||
_default_starting_dir = QStandardPaths.writableLocation(QStandardPaths.HomeLocation)
|
||||
|
||||
|
||||
|
||||
@@ -35,7 +35,6 @@ from picard import (
|
||||
config,
|
||||
log,
|
||||
)
|
||||
|
||||
from picard.const import (
|
||||
PLUGINS_API,
|
||||
USER_PLUGIN_DIR,
|
||||
@@ -50,6 +49,7 @@ from picard.ui.options import (
|
||||
)
|
||||
from picard.ui.ui_options_plugins import Ui_PluginsOptionsPage
|
||||
|
||||
|
||||
COLUMN_NAME, COLUMN_VERSION, COLUMN_ACTIONS = range(3)
|
||||
|
||||
|
||||
|
||||
@@ -26,7 +26,6 @@ from PyQt5 import (
|
||||
)
|
||||
|
||||
from picard import config
|
||||
|
||||
from picard.const import (
|
||||
RELEASE_COUNTRIES,
|
||||
RELEASE_FORMATS,
|
||||
@@ -42,6 +41,7 @@ from picard.ui.options import (
|
||||
)
|
||||
from picard.ui.ui_options_releases import Ui_ReleasesOptionsPage
|
||||
|
||||
|
||||
_DEFAULT_SCORE = 0.5
|
||||
_release_type_scores = [(g, _DEFAULT_SCORE) for g in list(RELEASE_PRIMARY_GROUPS.keys()) + list(RELEASE_SECONDARY_GROUPS.keys())]
|
||||
|
||||
|
||||
@@ -48,7 +48,6 @@ from picard.ui.ui_options_renaming import Ui_RenamingOptionsPage
|
||||
from picard.ui.util import enabledSlot
|
||||
|
||||
|
||||
|
||||
_default_music_dir = QStandardPaths.writableLocation(QStandardPaths.MusicLocation)
|
||||
|
||||
|
||||
|
||||
@@ -42,9 +42,7 @@ from picard.util import (
|
||||
)
|
||||
|
||||
from picard.ui import PicardDialog
|
||||
from picard.ui.util import (
|
||||
StandardButton,
|
||||
)
|
||||
from picard.ui.util import StandardButton
|
||||
|
||||
|
||||
class ResultTable(QtWidgets.QTableWidget):
|
||||
|
||||
@@ -27,9 +27,7 @@ from picard.const.sys import (
|
||||
IS_MACOS,
|
||||
IS_WIN,
|
||||
)
|
||||
from picard.util import (
|
||||
find_existing_path,
|
||||
)
|
||||
from picard.util import find_existing_path
|
||||
|
||||
|
||||
class StandardButton(QtWidgets.QPushButton):
|
||||
|
||||
@@ -30,6 +30,7 @@ from picard.const.sys import (
|
||||
)
|
||||
from picard.util import uniqify
|
||||
|
||||
|
||||
if IS_WIN:
|
||||
from ctypes import windll
|
||||
|
||||
|
||||
@@ -67,6 +67,7 @@ import unicodedata
|
||||
|
||||
from picard.util import sanitize_filename
|
||||
|
||||
|
||||
######################### LATIN SIMPLIFICATION ###########################
|
||||
# The translation tables for punctuation and latin combined-characters are taken from
|
||||
# http://unicode.org/repos/cldr/trunk/common/transforms/Latin-ASCII.xml
|
||||
|
||||
@@ -33,6 +33,7 @@ from picard import PICARD_FANCY_VERSION_STR
|
||||
from picard.disc import discid_version
|
||||
from picard.util.astrcmp import astrcmp_implementation
|
||||
|
||||
|
||||
_versions = OrderedDict([
|
||||
("version", PICARD_FANCY_VERSION_STR),
|
||||
("python-version", python_version()),
|
||||
|
||||
@@ -23,6 +23,7 @@ import re
|
||||
|
||||
from PyQt5.QtCore import QXmlStreamReader
|
||||
|
||||
|
||||
_node_name_re = re.compile('[^a-zA-Z0-9]')
|
||||
|
||||
|
||||
|
||||
@@ -60,6 +60,7 @@ from picard.util import (
|
||||
from picard.util.xml import parse_xml
|
||||
from picard.webservice import ratecontrol
|
||||
|
||||
|
||||
COUNT_REQUESTS_DELAY_MS = 250
|
||||
|
||||
TEMP_ERRORS_RETRIES = 5
|
||||
|
||||
@@ -38,6 +38,7 @@ from picard.webservice import (
|
||||
ratecontrol,
|
||||
)
|
||||
|
||||
|
||||
ratecontrol.set_minimum_delay((ACOUSTID_HOST, ACOUSTID_PORT), 333)
|
||||
ratecontrol.set_minimum_delay((CAA_HOST, CAA_PORT), 0)
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ import time
|
||||
|
||||
from picard import log
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# Throttling/congestion avoidance
|
||||
# ============================================================================
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import glob
|
||||
import os.path
|
||||
|
||||
|
||||
for filename in glob.glob(os.path.join(os.path.dirname(__file__), "test_*.py")):
|
||||
__import__("test." + os.path.basename(filename)[:-3])
|
||||
|
||||
@@ -2,11 +2,12 @@
|
||||
import os.path
|
||||
import shutil
|
||||
from tempfile import mkstemp
|
||||
from test.picardtestcase import PicardTestCase
|
||||
import unittest
|
||||
|
||||
import mutagen
|
||||
|
||||
from test.picardtestcase import PicardTestCase
|
||||
|
||||
from picard import config
|
||||
import picard.formats
|
||||
from picard.formats import ext_to_format
|
||||
|
||||
@@ -7,6 +7,7 @@ from picard.coverart.image import (
|
||||
)
|
||||
import picard.formats
|
||||
from picard.metadata import Metadata
|
||||
|
||||
from .common import (
|
||||
CommonTests,
|
||||
skipUnlessTestfile,
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
from test.picardtestcase import PicardTestCase
|
||||
|
||||
from picard.formats import apev2
|
||||
|
||||
from .common import (
|
||||
TAGS,
|
||||
CommonTests,
|
||||
load_metadata,
|
||||
TAGS,
|
||||
)
|
||||
from .coverart import CommonCoverArtTests
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ from test.picardtestcase import (
|
||||
)
|
||||
|
||||
from picard.formats import asf
|
||||
|
||||
from .common import CommonTests
|
||||
from .coverart import CommonCoverArtTests
|
||||
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
import os.path
|
||||
|
||||
from test.picardtestcase import PicardTestCase
|
||||
|
||||
from picard import config
|
||||
from picard.formats import id3
|
||||
from picard.metadata import Metadata
|
||||
|
||||
from .common import (
|
||||
CommonTests,
|
||||
load_metadata,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
from picard.formats import ext_to_format
|
||||
|
||||
from .common import (
|
||||
CommonTests,
|
||||
load_metadata,
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import logging
|
||||
import os
|
||||
|
||||
from test.picardtestcase import PicardTestCase
|
||||
|
||||
from picard import (
|
||||
@@ -8,13 +9,14 @@ from picard import (
|
||||
)
|
||||
from picard.coverart.image import CoverArtImage
|
||||
from picard.formats import vorbis
|
||||
|
||||
from .common import (
|
||||
TAGS,
|
||||
CommonTests,
|
||||
load_metadata,
|
||||
load_raw,
|
||||
save_and_load_metadata,
|
||||
skipUnlessTestfile,
|
||||
TAGS,
|
||||
)
|
||||
from .coverart import (
|
||||
CommonCoverArtTests,
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import json
|
||||
import os
|
||||
|
||||
from test.picardtestcase import PicardTestCase
|
||||
|
||||
from picard import config
|
||||
@@ -8,6 +9,7 @@ from picard.mbjson import recording_to_metadata
|
||||
from picard.metadata import Metadata
|
||||
from picard.track import Track
|
||||
|
||||
|
||||
settings = {
|
||||
"standardize_tracks": False,
|
||||
"standardize_artists": False,
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
from test.picardtestcase import PicardTestCase
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
from test.picardtestcase import PicardTestCase
|
||||
|
||||
from picard import config
|
||||
from picard.webservice import WebService
|
||||
from picard.webservice.api_helpers import (
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
from test.picardtestcase import PicardTestCase
|
||||
from unittest.mock import patch
|
||||
from urllib.parse import (
|
||||
parse_qs,
|
||||
urlparse,
|
||||
)
|
||||
|
||||
from test.picardtestcase import PicardTestCase
|
||||
|
||||
from picard.browser.filelookup import FileLookup
|
||||
from picard.util import webbrowser2
|
||||
|
||||
|
||||
SERVER = 'musicbrainz.org'
|
||||
PORT = 443
|
||||
LOCAL_PORT = "8000"
|
||||
|
||||
@@ -2,6 +2,7 @@ import os.path
|
||||
import shutil
|
||||
import sys
|
||||
import tempfile
|
||||
|
||||
from test.picardtestcase import PicardTestCase
|
||||
|
||||
from picard.i18n import setup_gettext
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from test.picardtestcase import PicardTestCase
|
||||
|
||||
from mutagen import id3
|
||||
|
||||
from test.picardtestcase import PicardTestCase
|
||||
|
||||
from picard.formats.id3 import id3text
|
||||
from picard.formats.mutagenext import compatid3
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@ from picard.config import (
|
||||
TextOption,
|
||||
)
|
||||
|
||||
|
||||
class TestPicardConfigCommon(PicardTestCase):
|
||||
|
||||
def setUp(self):
|
||||
|
||||
@@ -7,6 +7,7 @@ from test.picardtestcase import (
|
||||
PicardTestCase,
|
||||
create_fake_png,
|
||||
)
|
||||
|
||||
from picard.const.sys import IS_WIN
|
||||
from picard.coverart.image import (
|
||||
CoverArtImage,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
import os.path
|
||||
import shutil
|
||||
import tempfile
|
||||
|
||||
from test.picardtestcase import PicardTestCase
|
||||
|
||||
from picard.coverart.utils import translate_caa_type
|
||||
|
||||
@@ -3,6 +3,7 @@ from contextlib import suppress
|
||||
import os.path
|
||||
import shutil
|
||||
from tempfile import mkdtemp
|
||||
|
||||
from test.picardtestcase import PicardTestCase
|
||||
|
||||
from picard import config
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import json
|
||||
import os
|
||||
|
||||
from test.picardtestcase import PicardTestCase
|
||||
|
||||
from picard import config
|
||||
@@ -19,6 +20,7 @@ from picard.metadata import Metadata
|
||||
from picard.releasegroup import ReleaseGroup
|
||||
from picard.track import Track
|
||||
|
||||
|
||||
settings = {
|
||||
"standardize_tracks": False,
|
||||
"standardize_artists": False,
|
||||
|
||||
@@ -3,12 +3,14 @@ import os.path
|
||||
import shutil
|
||||
import sys
|
||||
import tempfile
|
||||
|
||||
from test.picardtestcase import PicardTestCase
|
||||
|
||||
from picard import config
|
||||
from picard.i18n import setup_gettext
|
||||
from picard.releasegroup import ReleaseGroup
|
||||
|
||||
|
||||
settings = {
|
||||
"standardize_tracks": False,
|
||||
"standardize_artists": False,
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
from test.picardtestcase import PicardTestCase
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
from test.picardtestcase import PicardTestCase
|
||||
|
||||
from picard import config
|
||||
from picard.const import DEFAULT_FILE_NAMING_FORMAT
|
||||
from picard.metadata import Metadata
|
||||
|
||||
@@ -3,6 +3,7 @@ from test.picardtestcase import PicardTestCase
|
||||
|
||||
from picard import util
|
||||
|
||||
|
||||
#from picard.util import textencoding
|
||||
|
||||
# Set the value to true below to show the coverage of Latin characters
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from test.picardtestcase import PicardTestCase
|
||||
import unittest
|
||||
|
||||
from test.picardtestcase import PicardTestCase
|
||||
|
||||
from picard.util.astrcmp import astrcmp_py
|
||||
|
||||
|
||||
try:
|
||||
from picard.util.astrcmp import astrcmp_c
|
||||
except ImportError:
|
||||
|
||||
@@ -3,15 +3,17 @@
|
||||
import os
|
||||
import os.path
|
||||
import sys
|
||||
from test.picardtestcase import PicardTestCase
|
||||
import unittest
|
||||
|
||||
from test.picardtestcase import PicardTestCase
|
||||
|
||||
from picard.const.sys import (
|
||||
IS_MACOS,
|
||||
IS_WIN,
|
||||
)
|
||||
from picard.util.filenaming import make_short_filename
|
||||
|
||||
|
||||
class ShortFilenameTest(PicardTestCase):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
||||
@@ -3,9 +3,10 @@
|
||||
import builtins
|
||||
from collections import namedtuple
|
||||
import os.path
|
||||
from test.picardtestcase import PicardTestCase
|
||||
import unittest
|
||||
|
||||
from test.picardtestcase import PicardTestCase
|
||||
|
||||
from picard import util
|
||||
from picard.const.sys import IS_WIN
|
||||
from picard.util import (
|
||||
@@ -14,6 +15,7 @@ from picard.util import (
|
||||
sort_by_similarity,
|
||||
)
|
||||
|
||||
|
||||
# ensure _() is defined
|
||||
if '_' not in builtins.__dict__:
|
||||
builtins.__dict__['_'] = lambda a: a
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from test.picardtestcase import PicardTestCase
|
||||
from unittest.mock import (
|
||||
MagicMock,
|
||||
patch,
|
||||
)
|
||||
|
||||
from test.picardtestcase import PicardTestCase
|
||||
|
||||
from picard import config
|
||||
from picard.webservice import (
|
||||
UnknownResponseParserError,
|
||||
@@ -13,6 +14,7 @@ from picard.webservice import (
|
||||
ratecontrol,
|
||||
)
|
||||
|
||||
|
||||
PROXY_SETTINGS = {
|
||||
"use_proxy": True,
|
||||
"proxy_server_host": '127.0.0.1',
|
||||
|
||||
Reference in New Issue
Block a user