Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] master from feeluown:master #170

Open
wants to merge 316 commits into
base: master
Choose a base branch
from
Open

Conversation

pull[bot]
Copy link

@pull pull bot commented Apr 23, 2021

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

@pull pull bot added the ⤵️ pull label Apr 23, 2021
cosven and others added 29 commits November 21, 2021 18:50
1. fix: if the rpc server port is used, the app crash with no warn
2. fix: app core dump during shutdown (not fully fixed)
3. fix: if user play a media through player.play interface just
   after app starts, the play range is wrong.
* wip: signal slots in rcfile can be invoked immediately

* fuoexec: refactor, can specify connection kwargs such as aioqueue
* Add feeluown.app package
* Use asyncio.run as entrypoint
…proper duration/position (#534)

* gui: prevent user to drag the slider when there is no media

* add unittest and fix CI
cosven and others added 30 commits February 22, 2024 00:12
* gui: draw close icon when searchbox is visible
* setFocus when user click the search button
1. Renderring daily recommended playlists/songs from all providers in homepage.
2. fix #821

Add this option to enable new homepage
```python
config.ENABLE_NEW_HOMEPAGE = True
```
* library: add protocol SupportsDiscoveryTopList

* gui: add toplist page and refactor home
Python 3.12 treats the typo as an error now:

```
=================================== FAILURES ===================================
_____________________________ test_collection_load _____________________________

tmp_path = PosixPath('/tmp/pytest-of-builduser/pytest-0/test_collection_load0')
song = SongModel(meta=<feeluown.library.models.ModelMeta object at 0x7acaf2177c50>, identifier='0', source='fake', state=<Mod...on=600000, children=[], genre='', date='', track='1/1', disc='1/1', pic_url='', media_flags=<MediaFlags.not_sure: 128>)
mocker = <pytest_mock.plugin.MockerFixture object at 0x7acad8c98b60>

    def test_collection_load(tmp_path, song, mocker):                                                                                                                                                                                                                                              mock_resolve = mocker.patch('feeluown.collection.resolve',
                                    return_value=song)
        path = tmp_path / 'test.fuo'
        path.touch()
        text = 'fuo://fake/songs/1  # hello - Tom'                                                                                                                                                                                                                                                 path.write_text(text)
        coll = Collection(str(path))
        coll.load()
>       mock_resolve.called_once_with(text)

tests/test_collection.py:15:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <MagicMock name='resolve' id='135011639070880'>
name = 'called_once_with'

    def __getattr__(self, name):
        if name in {'_mock_methods', '_mock_unsafe'}:
            raise AttributeError(name)
        elif self._mock_methods is not None:
            if name not in self._mock_methods or name in _all_magics:
                raise AttributeError("Mock object has no attribute %r" % name)                                                                                                                                                                                                                     elif _is_magic(name):
            raise AttributeError(name)
        if not self._mock_unsafe and (not self._mock_methods or name not in self._mock_methods):
            if name.startswith(('assert', 'assret', 'asert', 'aseert', 'assrt')) or name in _ATTRIB_DENY_LIST:
>               raise AttributeError(
                    f"{name!r} is not a valid assertion. Use a spec "
                    f"for the mock if {name!r} is meant to be an attribute.")                                                                                                                                                                                                              E               AttributeError: 'called_once_with' is not a valid assertion. Use a spec for the mock if 'called_once_with' is meant to be an attribute.. Did you mean: 'assert_called_once_with'?

/usr/lib/python3.12/unittest/mock.py:663: AttributeError
```
1. remember search settings (search from which providers)
2. show search performance
- [x] macos-13 ok
- [ ] macos-latest still not ok
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet