1
0
mirror of https://github.com/spl0k/supysonic.git synced 2024-12-22 08:56:17 +00:00

Some housekeeping

Trying to make flake8 happy
This commit is contained in:
Alban Féron 2020-11-29 17:24:28 +01:00
parent 36cea89b26
commit f8018b2751
No known key found for this signature in database
GPG Key ID: 8CE0313646D16165
46 changed files with 81 additions and 91 deletions

View File

@ -15,9 +15,10 @@ from flask import Blueprint
from pony.orm import ObjectNotFound from pony.orm import ObjectNotFound
from pony.orm import commit from pony.orm import commit
from ..db import ClientPrefs, Folder
from ..managers.user import UserManager from ..managers.user import UserManager
from .exceptions import Unauthorized from .exceptions import GenericError, Unauthorized
from .formatters import JSONFormatter, JSONPFormatter, XMLFormatter from .formatters import JSONFormatter, JSONPFormatter, XMLFormatter
api = Blueprint("api", __name__) api = Blueprint("api", __name__)

View File

@ -11,10 +11,8 @@ from pony.orm import select, desc, avg, max, min, count, between
from ..db import ( from ..db import (
Folder, Folder,
Artist,
Album, Album,
Track, Track,
RatingFolder,
StarredFolder, StarredFolder,
StarredArtist, StarredArtist,
StarredAlbum, StarredAlbum,

View File

@ -5,15 +5,13 @@
# #
# Distributed under terms of the GNU AGPLv3 license. # Distributed under terms of the GNU AGPLv3 license.
import sys
import time import time
import uuid
from flask import current_app, request from flask import current_app, request
from pony.orm import delete from pony.orm import delete
from pony.orm import ObjectNotFound from pony.orm import ObjectNotFound
from ..db import Track, Album, Artist, Folder, User from ..db import Track, Album, Artist, Folder
from ..db import StarredTrack, StarredAlbum, StarredArtist, StarredFolder from ..db import StarredTrack, StarredAlbum, StarredArtist, StarredFolder
from ..db import RatingTrack, RatingFolder from ..db import RatingTrack, RatingFolder
from ..lastfm import LastFm from ..lastfm import LastFm
@ -22,10 +20,11 @@ from . import api, get_entity, get_entity_id
from .exceptions import AggregateException, GenericError, MissingParameter, NotFound from .exceptions import AggregateException, GenericError, MissingParameter, NotFound
def star_single(cls, eid): def star_single(cls, starcls, eid):
"""Stars an entity """Stars an entity
:param cls: entity class, Folder, Artist, Album or Track :param cls: entity class, Folder, Artist, Album or Track
:param starcls: matching starred class, StarredFolder, StarredArtist, StarredAlbum or StarredTrack
:param eid: id of the entity to star :param eid: id of the entity to star
""" """
@ -34,27 +33,24 @@ def star_single(cls, eid):
except ObjectNotFound: except ObjectNotFound:
raise NotFound("{} {}".format(cls.__name__, eid)) raise NotFound("{} {}".format(cls.__name__, eid))
starred_cls = getattr(sys.modules[__name__], "Starred" + cls.__name__)
try: try:
starred_cls[request.user, eid] starcls[request.user, eid]
raise GenericError("{} {} already starred".format(cls.__name__, eid)) raise GenericError("{} {} already starred".format(cls.__name__, eid))
except ObjectNotFound: except ObjectNotFound:
pass pass
starred_cls(user=request.user, starred=e) starcls(user=request.user, starred=e)
def unstar_single(cls, eid): def unstar_single(cls, starcls, eid):
"""Unstars an entity """Unstars an entity
:param cls: entity class, Folder, Artist, Album or Track :param cls: entity class, Folder, Artist, Album or Track
:param starcls: matching starred class, StarredFolder, StarredArtist, StarredAlbum or StarredTrack
:param eid: id of the entity to unstar :param eid: id of the entity to unstar
""" """
starred_cls = getattr(sys.modules[__name__], "Starred" + cls.__name__) delete(s for s in starcls if s.user.id == request.user.id and s.starred.id == eid)
delete(
s for s in starred_cls if s.user.id == request.user.id and s.starred.id == eid
)
return None return None
@ -81,12 +77,12 @@ def handle_star_request(func):
if tid is not None: if tid is not None:
try: try:
func(Track, tid) func(Track, StarredTrack, tid)
except Exception as e: except Exception as e:
err = e err = e
else: else:
try: try:
func(Folder, fid) func(Folder, StarredFolder, fid)
except Exception as e: except Exception as e:
err = e err = e
@ -96,14 +92,14 @@ def handle_star_request(func):
for alId in albumId: for alId in albumId:
alb_id = get_entity_id(Album, alId) alb_id = get_entity_id(Album, alId)
try: try:
func(Album, alb_id) func(Album, StarredAlbum, alb_id)
except Exception as e: except Exception as e:
errors.append(e) errors.append(e)
for arId in artistId: for arId in artistId:
art_id = get_entity_id(Artist, arId) art_id = get_entity_id(Artist, arId)
try: try:
func(Artist, art_id) func(Artist, StarredArtist, art_id)
except Exception as e: except Exception as e:
errors.append(e) errors.append(e)

View File

@ -7,7 +7,6 @@
import re import re
import string import string
import uuid
from flask import current_app, request from flask import current_app, request
from pony.orm import ObjectNotFound, select, count from pony.orm import ObjectNotFound, select, count

View File

@ -7,7 +7,7 @@
from flask import request from flask import request
from ..db import ChatMessage, User from ..db import ChatMessage
from . import api from . import api

View File

@ -5,7 +5,6 @@
# #
# Distributed under terms of the GNU AGPLv3 license. # Distributed under terms of the GNU AGPLv3 license.
from flask import current_app
from pony.orm import rollback from pony.orm import rollback
from pony.orm import ObjectNotFound from pony.orm import ObjectNotFound
from werkzeug.exceptions import BadRequestKeyError from werkzeug.exceptions import BadRequestKeyError
@ -27,7 +26,7 @@ def key_error(e):
@api.errorhandler(ObjectNotFound) @api.errorhandler(ObjectNotFound)
def not_found(e): def object_not_found(e):
rollback() rollback()
return NotFound(e.entity.__name__) return NotFound(e.entity.__name__)

View File

@ -7,7 +7,6 @@
# Distributed under terms of the GNU AGPLv3 license. # Distributed under terms of the GNU AGPLv3 license.
import hashlib import hashlib
import io
import json import json
import logging import logging
import mediafile import mediafile
@ -16,7 +15,6 @@ import os.path
import requests import requests
import shlex import shlex
import subprocess import subprocess
import uuid
import zlib import zlib
from flask import request, Response, send_file from flask import request, Response, send_file
@ -27,14 +25,12 @@ from xml.etree import ElementTree
from zipfile import ZIP_DEFLATED from zipfile import ZIP_DEFLATED
from zipstream import ZipFile from zipstream import ZipFile
from .. import scanner
from ..cache import CacheMiss from ..cache import CacheMiss
from ..db import Track, Album, Artist, Folder, User, ClientPrefs, now from ..db import Track, Album, Folder, now
from . import api, get_entity, get_entity_id from . import api, get_entity, get_entity_id
from .exceptions import ( from .exceptions import (
GenericError, GenericError,
MissingParameter,
NotFound, NotFound,
ServerError, ServerError,
UnsupportedParameter, UnsupportedParameter,
@ -168,7 +164,7 @@ def stream_media():
yield data yield data
def kill_processes(): def kill_processes():
if dec_proc != None: if dec_proc is not None:
dec_proc.kill() dec_proc.kill()
proc.kill() proc.kill()
@ -194,7 +190,7 @@ def stream_media():
kill_processes() kill_processes()
raise raise
finally: finally:
if dec_proc != None: if dec_proc is not None:
dec_proc.stdout.close() dec_proc.stdout.close()
dec_proc.wait() dec_proc.wait()
proc.stdout.close() proc.stdout.close()

View File

@ -10,7 +10,7 @@ from flask import request
from ..db import RadioStation from ..db import RadioStation
from . import api, get_entity from . import api, get_entity
from .exceptions import Forbidden, MissingParameter, NotFound from .exceptions import Forbidden, MissingParameter
@api.route("/getInternetRadioStations.view", methods=["GET", "POST"]) @api.route("/getInternetRadioStations.view", methods=["GET", "POST"])

View File

@ -12,7 +12,7 @@ from ..db import User
from ..managers.user import UserManager from ..managers.user import UserManager
from . import api, decode_password from . import api, decode_password
from .exceptions import Forbidden, GenericError, NotFound from .exceptions import Forbidden, NotFound
def admin_only(f): def admin_only(f):

View File

@ -16,7 +16,7 @@ from hashlib import sha1
from pony.orm import Database, Required, Optional, Set, PrimaryKey, LongStr from pony.orm import Database, Required, Optional, Set, PrimaryKey, LongStr
from pony.orm import ObjectNotFound, DatabaseError from pony.orm import ObjectNotFound, DatabaseError
from pony.orm import buffer from pony.orm import buffer
from pony.orm import min, max, avg, sum, count, exists from pony.orm import min, avg, sum, count, exists
from pony.orm import db_session from pony.orm import db_session
from urllib.parse import urlparse, parse_qsl from urllib.parse import urlparse, parse_qsl
from uuid import UUID, uuid4 from uuid import UUID, uuid4

View File

@ -6,7 +6,15 @@
# #
# Distributed under terms of the GNU AGPLv3 license. # Distributed under terms of the GNU AGPLv3 license.
from flask import current_app, redirect, request, session, url_for from flask import (
current_app,
flash,
redirect,
request,
render_template,
session,
url_for,
)
from flask import Blueprint from flask import Blueprint
from functools import wraps from functools import wraps
from pony.orm import ObjectNotFound from pony.orm import ObjectNotFound

View File

@ -12,7 +12,7 @@ from flask import current_app
from functools import wraps from functools import wraps
from pony.orm import ObjectNotFound from pony.orm import ObjectNotFound
from ..db import User, ClientPrefs from ..db import User
from ..lastfm import LastFm from ..lastfm import LastFm
from ..managers.user import UserManager from ..managers.user import UserManager

View File

@ -6,7 +6,6 @@
# Distributed under terms of the GNU AGPLv3 license. # Distributed under terms of the GNU AGPLv3 license.
import os.path import os.path
import uuid
from pony.orm import select from pony.orm import select
from pony.orm import ObjectNotFound from pony.orm import ObjectNotFound

View File

@ -6,7 +6,8 @@
# Distributed under terms of the GNU AGPLv3 license. # Distributed under terms of the GNU AGPLv3 license.
import logging import logging
import os, os.path import os
import os.path
import mediafile import mediafile
import time import time
@ -16,9 +17,7 @@ from queue import Queue, Empty as QueueEmpty
from threading import Thread, Event from threading import Thread, Event
from .covers import find_cover_in_folder, CoverFile from .covers import find_cover_in_folder, CoverFile
from .db import Folder, Artist, Album, Track, User from .db import Folder, Artist, Album, Track
from .db import StarredFolder, StarredArtist, StarredAlbum, StarredTrack
from .db import RatingFolder, RatingTrack
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@ -212,7 +211,6 @@ class Scanner(Thread):
return return
mtime = int(stat.st_mtime) mtime = int(stat.st_mtime)
size = stat.st_size
tr = Track.get(path=path) tr = Track.get(path=path)
if tr is not None: if tr is not None:

View File

@ -32,7 +32,7 @@ def process_table(connection, table, fields, nullable_fields=()):
c.execute("SELECT {1} FROM {0}".format(table, ",".join(fields + nullable_fields))) c.execute("SELECT {1} FROM {0}".format(table, ",".join(fields + nullable_fields)))
for row in c: for row in c:
for field, value in zip(fields + nullable_fields, row): for field, value in zip(fields + nullable_fields, row):
if value is None or not isinstance(value, basestring): if value is None or not isinstance(value, str):
continue continue
to_update[field].add(value) to_update[field].add(value)

View File

@ -1,7 +1,6 @@
import argparse import argparse
import hashlib import hashlib
import psycopg2 import psycopg2
import uuid
try: try:
bytes = buffer bytes = buffer

View File

@ -23,13 +23,13 @@ def process_table(connection, table, fields):
c = connection.cursor() c = connection.cursor()
for row in c.execute("SELECT {1} FROM {0}".format(table, ",".join(fields))): for row in c.execute("SELECT {1} FROM {0}".format(table, ",".join(fields))):
for field, value in zip(fields, row): for field, value in zip(fields, row):
if value is None or not isinstance(value, basestring): if value is None or not isinstance(value, str):
continue continue
to_update[field].add(value) to_update[field].add(value)
for field, values in to_update.iteritems(): for field, values in to_update.iteritems():
sql = "UPDATE {0} SET {1}=? WHERE {1}=?".format(table, field) sql = "UPDATE {0} SET {1}=? WHERE {1}=?".format(table, field)
c.executemany(sql, map(lambda v: (buffer(UUID(v).bytes), v), values)) c.executemany(sql, map(lambda v: (UUID(v).bytes, v), values))
connection.commit() connection.commit()

View File

@ -1,7 +1,6 @@
import argparse import argparse
import hashlib import hashlib
import sqlite3 import sqlite3
import uuid
try: try:
bytes = buffer bytes = buffer

View File

@ -7,7 +7,6 @@
# #
# Distributed under terms of the GNU AGPLv3 license. # Distributed under terms of the GNU AGPLv3 license.
import io
import logging import logging
import mimetypes import mimetypes

View File

@ -8,7 +8,6 @@
import re import re
from lxml import etree from lxml import etree
from supysonic.managers.user import UserManager
from ..testbase import TestBase from ..testbase import TestBase

View File

@ -5,7 +5,7 @@
# #
# Distributed under terms of the GNU AGPLv3 license. # Distributed under terms of the GNU AGPLv3 license.
import uuid import unittest
from pony.orm import db_session from pony.orm import db_session

View File

@ -5,6 +5,7 @@
# #
# Distributed under terms of the GNU AGPLv3 license. # Distributed under terms of the GNU AGPLv3 license.
import unittest
import uuid import uuid
from pony.orm import db_session from pony.orm import db_session

View File

@ -8,6 +8,7 @@
import base64 import base64
import flask.json import flask.json
import unittest
from xml.etree import ElementTree from xml.etree import ElementTree

View File

@ -6,9 +6,9 @@
# Distributed under terms of the GNU AGPLv3 license. # Distributed under terms of the GNU AGPLv3 license.
import time import time
import unittest
import uuid import uuid
from lxml import etree
from pony.orm import db_session from pony.orm import db_session
from supysonic.db import Folder, Artist, Album, Track from supysonic.db import Folder, Artist, Album, Track
@ -43,7 +43,7 @@ class BrowseTestCase(ApiTestBase):
album = Album(name=letter + lether + "lbum", artist=artist) album = Album(name=letter + lether + "lbum", artist=artist)
for num, song in enumerate(["One", "Two", "Three"]): for num, song in enumerate(["One", "Two", "Three"]):
track = Track( Track(
disc=1, disc=1,
number=num, number=num,
title=song, title=song,

View File

@ -8,6 +8,7 @@
import flask.json import flask.json
import os.path import os.path
import requests import requests
import unittest
from pony.orm import db_session from pony.orm import db_session
@ -32,7 +33,7 @@ class LyricsTestCase(ApiTestBase):
artist = Artist(name="Artist") artist = Artist(name="Artist")
album = Album(artist=artist, name="Album") album = Album(artist=artist, name="Album")
track = Track( Track(
title="23bytes", title="23bytes",
number=1, number=1,
disc=1, disc=1,

View File

@ -6,6 +6,7 @@
# Distributed under terms of the GNU AGPLv3 license. # Distributed under terms of the GNU AGPLv3 license.
import os.path import os.path
import unittest
import uuid import uuid
from contextlib import closing from contextlib import closing

View File

@ -5,6 +5,7 @@
# #
# Distributed under terms of the GNU AGPLv3 license. # Distributed under terms of the GNU AGPLv3 license.
import unittest
import uuid import uuid
from pony.orm import db_session from pony.orm import db_session

View File

@ -87,18 +87,18 @@ class ResponseHelperJsonTestCase(TestBase, UnwrapperMixin.create_from(JSONFormat
self.assertIn("dict", resp) self.assertIn("dict", resp)
self.assertIn("list", resp) self.assertIn("list", resp)
d = resp["dict"] dct = resp["dict"]
l = resp["list"] lst = resp["list"]
self.assertIn("value", d) self.assertIn("value", dct)
self.assertIn("list", d) self.assertIn("list", dct)
self.assertNotIn("emptyList", d) self.assertNotIn("emptyList", dct)
self.assertIn("subdict", d) self.assertIn("subdict", dct)
self.assertIsInstance(d["value"], str) self.assertIsInstance(dct["value"], str)
self.assertIsInstance(d["list"], list) self.assertIsInstance(dct["list"], list)
self.assertIsInstance(d["subdict"], dict) self.assertIsInstance(dct["subdict"], dict)
self.assertEqual(l, [{"b": "B"}, {"c": "C"}, [4, 5, 6], "final string"]) self.assertEqual(lst, [{"b": "B"}, {"c": "C"}, [4, 5, 6], "final string"])
class ResponseHelperJsonpTestCase(TestBase, UnwrapperMixin.create_from(JSONPFormatter)): class ResponseHelperJsonpTestCase(TestBase, UnwrapperMixin.create_from(JSONPFormatter)):

View File

@ -40,7 +40,7 @@ class SearchTestCase(ApiTestBase):
album = Album(name=letter + lether + "lbum", artist=artist) album = Album(name=letter + lether + "lbum", artist=artist)
for num, song in enumerate(["One", "Two", "Three"]): for num, song in enumerate(["One", "Two", "Three"]):
track = Track( Track(
disc=1, disc=1,
number=num, number=num,
title=song, title=song,

View File

@ -6,6 +6,8 @@
# #
# Distributed under terms of the GNU AGPLv3 license. # Distributed under terms of the GNU AGPLv3 license.
import unittest
from .apitestbase import ApiTestBase from .apitestbase import ApiTestBase

View File

@ -11,7 +11,7 @@ import sys
from flask import current_app from flask import current_app
from pony.orm import db_session from pony.orm import db_session
from supysonic.db import Folder, Track from supysonic.db import Track
from supysonic.managers.folder import FolderManager from supysonic.managers.folder import FolderManager
from supysonic.scanner import Scanner from supysonic.scanner import Scanner
@ -23,7 +23,7 @@ class TranscodingTestCase(ApiTestBase):
super().setUp() super().setUp()
with db_session: with db_session:
folder = FolderManager.add("Folder", "tests/assets/folder") FolderManager.add("Folder", "tests/assets/folder")
scanner = Scanner() scanner = Scanner()
scanner.queue_folder("Folder") scanner.queue_folder("Folder")
scanner.run() scanner.run()

View File

@ -6,6 +6,8 @@
# #
# Distributed under terms of the GNU AGPLv3 license. # Distributed under terms of the GNU AGPLv3 license.
import unittest
from ..utils import hexlify from ..utils import hexlify
from .apitestbase import ApiTestBase from .apitestbase import ApiTestBase

View File

@ -32,7 +32,7 @@ class DbTestCase(unittest.TestCase):
def create_some_folders(self): def create_some_folders(self):
root_folder = db.Folder(root=True, name="Root folder", path="tests") root_folder = db.Folder(root=True, name="Root folder", path="tests")
child_folder = db.Folder( db.Folder(
root=False, root=False,
name="Child folder", name="Child folder",
path="tests/assets", path="tests/assets",
@ -40,7 +40,7 @@ class DbTestCase(unittest.TestCase):
parent=root_folder, parent=root_folder,
) )
child_2 = db.Folder( db.Folder(
root=False, root=False,
name="Child folder (No Art)", name="Child folder (No Art)",
path="tests/formats", path="tests/formats",
@ -158,10 +158,10 @@ class DbTestCase(unittest.TestCase):
root_folder, child_folder, _ = self.create_some_folders() root_folder, child_folder, _ = self.create_some_folders()
user = self.create_user() user = self.create_user()
star = db.StarredFolder(user=user, starred=root_folder) db.StarredFolder(user=user, starred=root_folder)
rating_user = db.RatingFolder(user=user, rated=root_folder, rating=2) db.RatingFolder(user=user, rated=root_folder, rating=2)
other = self.create_user("Other") other = self.create_user("Other")
rating_other = db.RatingFolder(user=other, rated=root_folder, rating=5) db.RatingFolder(user=other, rated=root_folder, rating=5)
root = root_folder.as_subsonic_child(user) root = root_folder.as_subsonic_child(user)
self.assertIn("starred", root) self.assertIn("starred", root)
@ -180,7 +180,7 @@ class DbTestCase(unittest.TestCase):
artist = db.Artist(name="Test Artist") artist = db.Artist(name="Test Artist")
user = self.create_user() user = self.create_user()
star = db.StarredArtist(user=user, starred=artist) db.StarredArtist(user=user, starred=artist)
artist_dict = artist.as_subsonic_artist(user) artist_dict = artist.as_subsonic_artist(user)
self.assertIsInstance(artist_dict, dict) self.assertIsInstance(artist_dict, dict)
@ -204,7 +204,7 @@ class DbTestCase(unittest.TestCase):
album = db.Album(artist=artist, name="Test Album") album = db.Album(artist=artist, name="Test Album")
user = self.create_user() user = self.create_user()
star = db.StarredAlbum(user=user, starred=album) db.StarredAlbum(user=user, starred=album)
# No tracks, shouldn't be stored under normal circumstances # No tracks, shouldn't be stored under normal circumstances
self.assertRaises(ValueError, album.as_subsonic_album, user) self.assertRaises(ValueError, album.as_subsonic_album, user)

View File

@ -5,7 +5,6 @@
# #
# Distributed under terms of the GNU AGPLv3 license. # Distributed under terms of the GNU AGPLv3 license.
import io
import mutagen import mutagen
import os import os
import os.path import os.path
@ -131,8 +130,6 @@ class ScannerTestCase(unittest.TestCase):
@db_session @db_session
def test_rescan_corrupt_file(self): def test_rescan_corrupt_file(self):
track = db.Track.select().first()
with self.__temporary_track_copy() as tf: with self.__temporary_track_copy() as tf:
self.__scan() self.__scan()
self.assertEqual(db.Track.select().count(), 2) self.assertEqual(db.Track.select().count(), 2)
@ -147,8 +144,6 @@ class ScannerTestCase(unittest.TestCase):
@db_session @db_session
def test_rescan_removed_file(self): def test_rescan_removed_file(self):
track = db.Track.select().first()
with self.__temporary_track_copy(): with self.__temporary_track_copy():
self.__scan() self.__scan()
self.assertEqual(db.Track.select().count(), 2) self.assertEqual(db.Track.select().count(), 2)
@ -158,8 +153,6 @@ class ScannerTestCase(unittest.TestCase):
@db_session @db_session
def test_scan_tag_change(self): def test_scan_tag_change(self):
folder = db.Folder[self.folderid]
with self.__temporary_track_copy() as tf: with self.__temporary_track_copy() as tf:
self.__scan() self.__scan()
copy = db.Track.get(path=tf) copy = db.Track.get(path=tf)

View File

@ -277,7 +277,7 @@ class CoverWatcherTestCase(WatcherTestCase):
self.assertIsNone(Folder.select().first().cover_art) self.assertIsNone(Folder.select().first().cover_art)
def test_naming_add_good(self): def test_naming_add_good(self):
bad = os.path.basename(self._addcover()) self._addcover()
self._sleep() self._sleep()
good = os.path.basename(self._addcover("cover")) good = os.path.basename(self._addcover("cover"))
self._sleep() self._sleep()
@ -288,7 +288,7 @@ class CoverWatcherTestCase(WatcherTestCase):
def test_naming_add_bad(self): def test_naming_add_bad(self):
good = os.path.basename(self._addcover("cover")) good = os.path.basename(self._addcover("cover"))
self._sleep() self._sleep()
bad = os.path.basename(self._addcover()) self._addcover()
self._sleep() self._sleep()
with db_session: with db_session:

View File

@ -5,7 +5,7 @@
# #
# Distributed under terms of the GNU AGPLv3 license. # Distributed under terms of the GNU AGPLv3 license.
import uuid import unittest
from pony.orm import db_session from pony.orm import db_session

View File

@ -6,6 +6,7 @@
# #
# Distributed under terms of the GNU AGPLv3 license. # Distributed under terms of the GNU AGPLv3 license.
import unittest
import uuid import uuid
from pony.orm import db_session from pony.orm import db_session

View File

@ -5,6 +5,7 @@
# #
# Distributed under terms of the GNU AGPLv3 license. # Distributed under terms of the GNU AGPLv3 license.
import unittest
import uuid import uuid
from pony.orm import db_session from pony.orm import db_session

View File

@ -5,6 +5,7 @@
# #
# Distributed under terms of the GNU AGPLv3 license. # Distributed under terms of the GNU AGPLv3 license.
import unittest
import uuid import uuid
from flask import escape from flask import escape

View File

@ -13,7 +13,6 @@ import unittest
from pony.orm import db_session from pony.orm import db_session
from supysonic.db import init_database, release_database from supysonic.db import init_database, release_database
from supysonic.db import Folder
from supysonic.managers.folder import FolderManager from supysonic.managers.folder import FolderManager
from supysonic.scanner import Scanner from supysonic.scanner import Scanner

View File

@ -22,7 +22,7 @@ class Issue129TestCase(TestBase):
super().setUp() super().setUp()
with db_session: with db_session:
folder = FolderManager.add("folder", os.path.abspath("tests/assets/folder")) FolderManager.add("folder", os.path.abspath("tests/assets/folder"))
scanner = Scanner() scanner = Scanner()
scanner.queue_folder("folder") scanner.queue_folder("folder")
scanner.run() scanner.run()

View File

@ -12,7 +12,7 @@ import unittest
from pony.orm import db_session from pony.orm import db_session
from supysonic.db import init_database, release_database from supysonic.db import init_database, release_database
from supysonic.db import Folder, Track from supysonic.db import Track
from supysonic.managers.folder import FolderManager from supysonic.managers.folder import FolderManager
from supysonic.scanner import Scanner from supysonic.scanner import Scanner

View File

@ -12,7 +12,6 @@ import unittest
from pony.orm import db_session from pony.orm import db_session
from supysonic.db import init_database, release_database from supysonic.db import init_database, release_database
from supysonic.db import Folder, Track
from supysonic.managers.folder import FolderManager from supysonic.managers.folder import FolderManager
from supysonic.scanner import Scanner from supysonic.scanner import Scanner

View File

@ -14,7 +14,6 @@ import unittest
from pony.orm import db_session from pony.orm import db_session
from supysonic.db import init_database, release_database from supysonic.db import init_database, release_database
from supysonic.db import Folder
from supysonic.managers.folder import FolderManager from supysonic.managers.folder import FolderManager
from supysonic.scanner import Scanner from supysonic.scanner import Scanner

View File

@ -13,7 +13,6 @@ import os
import shutil import shutil
import tempfile import tempfile
import unittest import unittest
import uuid
from pony.orm import db_session, ObjectNotFound from pony.orm import db_session, ObjectNotFound
@ -37,7 +36,7 @@ class FolderManagerTestCase(unittest.TestCase):
self.assertIsNotNone(FolderManager.add("media", self.media_dir)) self.assertIsNotNone(FolderManager.add("media", self.media_dir))
self.assertIsNotNone(FolderManager.add("music", self.music_dir)) self.assertIsNotNone(FolderManager.add("music", self.music_dir))
folder = db.Folder( db.Folder(
root=False, name="non-root", path=os.path.join(self.music_dir, "subfolder") root=False, name="non-root", path=os.path.join(self.music_dir, "subfolder")
) )
@ -45,7 +44,7 @@ class FolderManagerTestCase(unittest.TestCase):
album = db.Album(name="Album", artist=artist) album = db.Album(name="Album", artist=artist)
root = db.Folder.get(name="media") root = db.Folder.get(name="media")
track = db.Track( db.Track(
title="Track", title="Track",
artist=artist, artist=artist,
album=album, album=album,

View File

@ -9,7 +9,6 @@
from supysonic import db from supysonic import db
from supysonic.managers.user import UserManager from supysonic.managers.user import UserManager
import io
import unittest import unittest
import uuid import uuid