trackdb: Add a LibraryPath class for tracking multiple audio sources
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
a9f0ff8f8d
commit
27441b9b79
|
@ -3,7 +3,7 @@ import pathlib
|
|||
import trackdb
|
||||
import unittest
|
||||
|
||||
test_tracks = pathlib.Path("./trier/Test Album")
|
||||
test_tracks = "./trier/Test Album"
|
||||
|
||||
class TestTrackDB(unittest.TestCase):
|
||||
def setUp(self):
|
||||
|
@ -13,12 +13,21 @@ class TestTrackDB(unittest.TestCase):
|
|||
self.assertEqual(trackdb.library_paths, [ ])
|
||||
|
||||
def test_trackdb_add_path(self):
|
||||
trackdb.add_path(test_tracks)
|
||||
self.assertEqual(trackdb.library_paths, [ test_tracks ])
|
||||
lib = trackdb.add_path(test_tracks)
|
||||
self.assertIsInstance(lib, trackdb.library.LibraryPath)
|
||||
self.assertEqual(trackdb.library_paths, [ lib ])
|
||||
|
||||
self.assertIsNone(trackdb.add_path(test_tracks))
|
||||
self.assertEqual(len(trackdb.library_paths), 1)
|
||||
|
||||
trackdb.remove_path(test_tracks)
|
||||
self.assertEqual(trackdb.library_paths, [ ])
|
||||
|
||||
def test_trackdb_get_library(self):
|
||||
self.assertIsNone(trackdb.get_library(test_tracks))
|
||||
lib = trackdb.add_path(test_tracks)
|
||||
self.assertEqual(trackdb.get_library(test_tracks), lib)
|
||||
|
||||
def test_trackdb_reset(self):
|
||||
trackdb.library_paths = [ 1, 2, 3 ]
|
||||
trackdb.reset()
|
||||
|
|
|
@ -1,12 +1,24 @@
|
|||
# Copyright 2020 (c) Anna Schumaker.
|
||||
from . import library
|
||||
import pathlib
|
||||
|
||||
library_paths = [ ]
|
||||
|
||||
def add_path(path):
|
||||
library_paths.append(path)
|
||||
if get_library(path) == None:
|
||||
lib = library.LibraryPath(path)
|
||||
library_paths.append(lib)
|
||||
return lib
|
||||
|
||||
def get_library(path):
|
||||
for lib in library_paths:
|
||||
if lib.path == pathlib.Path(path):
|
||||
return lib
|
||||
return None
|
||||
|
||||
def remove_path(path):
|
||||
library_paths.remove(path)
|
||||
lib = get_library(path)
|
||||
library_paths.remove(lib)
|
||||
|
||||
def reset():
|
||||
library_paths.clear()
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
# Copyright 2020 (c) Anna Schumaker.
|
||||
import pathlib
|
||||
|
||||
class LibraryPath:
|
||||
def __init__(self, path):
|
||||
self.path = pathlib.Path(path)
|
||||
self.tracks = [ ]
|
||||
|
||||
def scan(self):
|
||||
for f in self.path.rglob("*"):
|
||||
if f.is_file():
|
||||
self.tracks.append(f)
|
|
@ -0,0 +1,18 @@
|
|||
# Copyright 2020 (c) Anna Schumaker.
|
||||
from . import library
|
||||
import pathlib
|
||||
import unittest
|
||||
|
||||
test_tracks = "./trier/Test Album"
|
||||
|
||||
class TestLibraryPath(unittest.TestCase):
|
||||
def test_library_path_init(self):
|
||||
lib = library.LibraryPath(test_tracks)
|
||||
|
||||
self.assertEqual(lib.path, pathlib.Path(test_tracks))
|
||||
self.assertEqual(lib.tracks, [ ])
|
||||
|
||||
def test_library_path_scan(self):
|
||||
lib = library.LibraryPath(test_tracks)
|
||||
lib.scan()
|
||||
self.assertEqual(len(lib.tracks), 13)
|
Loading…
Reference in New Issue