Commit Graph

5653 Commits

Author SHA1 Message Date
Philipp Wolfer
a0aa65cc8a PICARD-1060: Use checkbox text rendering again for CollectionsMenu
Fixes misplaced menu items on macOS
2018-11-13 23:23:40 +01:00
Philipp Wolfer
6e1ad4d451 PICARD-1060: Use QStyle for painting CollectionMenu
This results in a native look when using Windows or macOS styles
2018-11-13 23:08:58 +01:00
Philipp Wolfer
cc1864edcf PICARD-1060: Fixed vertical spacing in CollectionMenu 2018-11-13 21:50:56 +01:00
Philipp Wolfer
cea3dae9c5 PICARD-1060: CollectionMenu: Disable event handling while updating collection list 2018-11-13 21:15:46 +01:00
Philipp Wolfer
db4cc122cb PICARD-1060: Fix collections menu not looking and behaving like a normal menu 2018-11-13 16:59:39 +01:00
Philipp Wolfer
f90aba2085 Merge pull request #1029 from phw/PICARD-1043-movement
PICARD-1043: Write movement tags
2018-11-12 18:43:19 +01:00
Philipp Wolfer
64b36feec2 Merge pull request #1031 from phw/PICARD-1410-load-vorbis-file-with-invalid-rating
PICARD-1410: load vorbis file with invalid rating
2018-11-12 18:41:17 +01:00
Philipp Wolfer
1078251d2d PICARD-1405: Do not allow rich text input in script editors 2018-11-12 18:39:32 +01:00
Philipp Wolfer
b8253c9a3e Resources rebuilt for recent icon renaming changes 2018-11-12 09:54:37 +01:00
Philipp Wolfer
0546765d5f PICARD-1410: Added test for invalid Vorbis ratings 2018-11-12 09:17:29 +01:00
Philipp Wolfer
7a12c582e8 PICARD-1410: Handle loading Vorbis files with invalid rating value 2018-11-12 08:57:47 +01:00
Philipp Wolfer
35f36b177f PICARD-1043: Write showmovement only to MP4
Do not write the iTunes specific showmovement tag to formats other than MP4. iTunes does not support this for other formats, and there is no standard way to write this.
2018-11-11 11:03:04 +01:00
Philipp Wolfer
2a54a4962e PICARD-1043: Support movement tags for ID3 and MP4 2018-11-11 11:02:05 +01:00
Philipp Wolfer
f4d42ac5d2 PICARD-1375: Handle empty values in metadata sanitation 2018-11-11 10:59:15 +01:00
Philipp Wolfer
bf59d22bbb PICARD-1397: Do not save unsupported tags to files 2018-11-11 10:58:13 +01:00
Philipp Wolfer
985c56cc70 Merge pull request #1024 from virusMac/PICARD-1325
PICARD-1325: Allow disabling new version update checking for packagers
2018-11-05 22:29:35 +01:00
virusMac
ff0df0a15c Allow disabling new version update checking 2018-11-05 20:13:26 +01:00
Bruce
21a45818f8 Refer to INSTALL.md
So it's easy to find for new contributors
2018-11-04 11:09:24 +01:00
Philipp Wolfer
3ec9c7c5e4 Merge pull request #1023 from phw/PICARD-637-fix-matchedtracks
PICARD-637: Allow $matchedtracks any number of args
2018-10-31 08:33:46 +01:00
virusMac
8cc47a7680 PICARD-862: Add tests for func_pad, func_replace, func_strip (#1022) 2018-10-31 08:33:02 +01:00
Philipp Wolfer
790c85524c Merge branch 'PICARD-1384-appdata' 2018-10-30 08:39:15 +01:00
abhi-ohri
dd1dc7d4d3 Update Project license syntax 2018-10-30 08:36:24 +01:00
Abhinav Ohri
0d86ce520d Remove unneeded content_attributes. 2018-10-30 08:36:24 +01:00
abhi-ohri
7a4491a8dc Set content_attribute money-purchasing to mild 2018-10-30 08:36:24 +01:00
Abhinav Ohri
57d4152bbd Add Picard screenshot links 2018-10-30 08:36:24 +01:00
Kartik Ohri
4967709f7a Refactor Picard to org.musicbrainz.Picard
The refactoring is in line with the conventions followed by AppData xml.
2018-10-30 08:36:24 +01:00
abhi-ohri
8815c052ed Correct documentation link 2018-10-30 08:34:40 +01:00
abhi-ohri
7485375591 Update setup.py
Specify AppData xml file installation location and refactor Picard.desktop to meet conventions.
2018-10-30 08:34:40 +01:00
abhi-ohri
2b8203df1c Rename picard.desktop to org.musicbrainz.Picard.desktop
Rename file to meet [Freedesktop Desktop Entry Specification](https://standards.freedesktop.org/desktop-entry-spec/latest/ar01s02.html).
2018-10-30 08:34:40 +01:00
abhi-ohri
5101e96bd0 Create org.musicbrainz.Picard.appdata.xml
Add an app description to MusicBrainz Picard. AppStream adds standardized descriptions of applications, that can be used by different application stores and installers.
2018-10-30 08:34:40 +01:00
Wieland Hoffmann
8bb2777bad Remove devutil/__init__.py
It only provided a single function, `printable_node`, for printing XmlNode
objects. These are not really used in Picard anymore since the switch to the
JSON web service.
2018-10-30 08:28:35 +01:00
Philipp Wolfer
b18fbc77b2 Added tests for $matchedtracks 2018-10-29 13:34:02 +01:00
Sophist
fe64b49165 Allow $matchedtracks any number of args ...
... like $noop.

And note that $matchedtracks works only in file naming scripts (which
makes sense).
2018-10-29 12:56:34 +01:00
virusMac
3310f9914e PICARD-1386: Add $title function (#1018)
PICARD-1386: Add $title function
2018-10-29 08:34:54 +01:00
Philipp Wolfer
cf95a77b99 Merge pull request #1014 from phw/PICARD-1383-use-mcn-for-discid-lookup
PICARD-1383: Select release with matching barcode on disc ID lookup
2018-10-26 11:12:21 +02:00
Philipp Wolfer
80eafdc392 PICARD-1391: Avoid exception when closing active requests 2018-10-26 11:11:17 +02:00
Philipp Wolfer
f93a44e00b compare_barcodes: Both None and '' are considered "no barcode" 2018-10-25 08:53:53 +02:00
Philipp Wolfer
1dc800cfc7 Simplify compare_barcodes function 2018-10-25 08:53:53 +02:00
Philipp Wolfer
e94e36eca0 PICARD-1383: Select release with matching barcode on disc ID lookup 2018-10-25 08:53:53 +02:00
Philipp Wolfer
820dd45199 PICARD-1244: Refresh plugin list after (un)installing local plugin 2018-10-25 08:35:16 +02:00
Wieland Hoffmann
a6584d8f9b Merge pull request #1012 from mineo/test-order-1.1
PICARD-1381: Remove dependencies between tests
2018-10-24 17:27:13 +02:00
Wieland Hoffmann
4efc943246 test_acoustid: Extract self.init_test calls to AcoustIDTests setUp()
This is like 365f55c2 for test_acoustid.
2018-10-23 17:32:50 +02:00
Wieland Hoffmann
e624aa121c Make PicardTestCase the parent class of all tests
This brings the faketagger and, more importantly, settings reset to all of them.
2018-10-23 17:32:50 +02:00
Wieland Hoffmann
624ba7ff7d Always assign config.setting to a copy of the tests settings dictionary
This prevents any setting from leaking between tests.
2018-10-23 17:32:50 +02:00
Wieland Hoffmann
5511bc967c WAVTest: Initialize settings
These tests previously relied on config.setting being initialized by some of the
previous format tests, in particular `enabled_plugins`:

---------------------------------------------------- Captured stderr call -----------------------------------------------------
Traceback (most recent call last):
  File "/home/wieland/dev/picard/picard/formats/__init__.py", line 74, in open_
    audio_file = guess_format(filename)
  File "/home/wieland/dev/picard/picard/formats/__init__.py", line 58, in guess_format
    for option in options
  File "/home/wieland/dev/picard/picard/formats/__init__.py", line 57, in <listcomp>
    results = [(option._File.score(filename, fileobj, header), option.__name__, option)
  File "/home/wieland/dev/picard/picard/plugin.py", line 130, in __iter__
    enabled_plugins = config.setting["enabled_plugins"]
KeyError: 'enabled_plugins'
2018-10-23 17:32:50 +02:00
Wieland Hoffmann
eebe00a455 PicardTestCase: Reset config.setting in setUp
This helps finding tests that don't explicitly specify all settings they need.
2018-10-23 17:32:50 +02:00
Wieland Hoffmann
dac50a94b3 test_mbjson: Extract self.init_test calls to MBJSONTests setUp()
This is similar to how test_formats does it. It also means that all tests can
inherit setUp() and don't have to super()-call it.
2018-10-23 17:32:50 +02:00
Wieland Hoffmann
f01f9299a9 Extract setting up a FakeTagger into a PicardTestCase class 2018-10-23 17:32:50 +02:00
Wieland Hoffmann
3c366c7e36 test_imagelist: Fulfill the assumption that QObject.tagger is a FakeTagger object
Previously, these tests were failing if executed before test_filesystem or
test_format which already did the same:

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
test/test_imagelist.py:25: in create_test_files
    CoverArtImage(url='file://file1', data=create_fake_png(b'a')),
picard/coverart/image.py:151: in __init__
    self.set_data(data)
picard/coverart/image.py:248: in set_data
    self.datahash = DataHash(data, suffix=self.extension)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <picard.coverart.image.DataHash object at 0x7f367fe036a0>
data = b'\x89PNG\r\n\x1a\naaaaIHDR\x00\x00\x00d\x00\x00\x00da', prefix = 'picard', suffix = '.png'

    def __init__(self, data, prefix='picard', suffix=''):
        self._filename = None
        _datafile_mutex.lock()
        try:
            m = md5()
            m.update(data)
            self._hash = m.hexdigest()
            if self._hash not in _datafiles:
                (fd, self._filename) = tempfile.mkstemp(prefix=prefix, suffix=suffix)
>               QObject.tagger.register_cleanup(self.delete_file)
E               AttributeError: type object 'QObject' has no attribute 'tagger'

picard/coverart/image.py:68: AttributeError
2018-10-23 17:32:50 +02:00
Wieland Hoffmann
55046c7b14 Use pytest and pytest-randomly for running tests on travis
This ensures every test run uses a different execution order for tests, helping
us find dependencies between tests that should be independent.
2018-10-23 17:32:50 +02:00