def create_folders(self):
        # Add test folders
        self.assertIsNotNone(FolderManager.add("media", self.media_dir))
        self.assertIsNotNone(FolderManager.add("music", self.music_dir))

        db.Folder(root=False,
                  name="non-root",
                  path=os.path.join(self.music_dir, "subfolder"))

        artist = db.Artist(name="Artist")
        album = db.Album(name="Album", artist=artist)

        root = db.Folder.get(name="media")
        db.Track(
            title="Track",
            artist=artist,
            album=album,
            disc=1,
            number=1,
            path=os.path.join(self.media_dir, "somefile"),
            folder=root,
            root_folder=root,
            duration=2,
            bitrate=320,
            last_modification=0,
        )
    def test_add_folder(self):
        # Added in setUp()
        self.assertEqual(self.store.find(db.Folder).count(), 3)

        # Create duplicate
        self.assertEqual(FolderManager.add(self.store,'media', self.media_dir), FolderManager.NAME_EXISTS)
        self.assertEqual(self.store.find(db.Folder, db.Folder.name == 'media').count(), 1)

        # Duplicate path
        self.assertEqual(FolderManager.add(self.store,'new-folder', self.media_dir), FolderManager.PATH_EXISTS)
        self.assertEqual(self.store.find(db.Folder, db.Folder.path == self.media_dir).count(), 1)

        # Invalid path
        path = os.path.abspath('/this/not/is/valid')
        self.assertEqual(FolderManager.add(self.store,'invalid-path', path), FolderManager.INVALID_PATH)
        self.assertEqual(self.store.find(db.Folder, db.Folder.path == path).count(), 0)

        # Subfolder of already added path
        path = os.path.join(self.media_dir, 'subfolder')
        os.mkdir(path)
        self.assertEqual(FolderManager.add(self.store,'subfolder', path), FolderManager.PATH_EXISTS)
        self.assertEqual(self.store.find(db.Folder).count(), 3)

        # Parent folder of an already added path
        path = os.path.join(self.media_dir, '..')
        self.assertEqual(FolderManager.add(self.store, 'parent', path), FolderManager.SUBPATH_EXISTS)
        self.assertEqual(self.store.find(db.Folder).count(), 3)
Beispiel #3
0
    def setUp(self):
        super().setUp()

        with db_session:
            FolderManager.add("Folder", "tests/assets/folder")
            scanner = Scanner()
            scanner.queue_folder("Folder")
            scanner.run()

            self.trackid = Track.get().id
Beispiel #4
0
    def setUp(self):
        super().setUp()

        with db_session:
            FolderManager.add("folder", os.path.abspath("tests/assets/folder"))
            scanner = Scanner()
            scanner.queue_folder("folder")
            scanner.run()

            self.trackid = Track.select().first().id
            self.userid = User.get(name="alice").id
Beispiel #5
0
    def setUp(self):
        self.store = db.get_store('sqlite:')
        with io.open('schema/sqlite.sql', 'r') as f:
            for statement in f.read().split(';'):
                self.store.execute(statement)

        FolderManager.add(self.store, 'folder', os.path.abspath('tests/assets'))
        self.folder = self.store.find(db.Folder).one()
        self.assertIsNotNone(self.folder)

        self.scanner = Scanner(self.store)
        self.scanner.scan(self.folder)
Beispiel #6
0
    def setUp(self):
        self.store = db.get_store('sqlite:')
        with io.open('schema/sqlite.sql', 'r') as f:
            for statement in f.read().split(';'):
                self.store.execute(statement)

        FolderManager.add(self.store, 'folder',
                          os.path.abspath('tests/assets'))
        self.folder = self.store.find(db.Folder).one()
        self.assertIsNotNone(self.folder)

        self.scanner = Scanner(self.store)
        self.scanner.scan(self.folder)
Beispiel #7
0
    def setUp(self):
        # Create an empty sqlite database in memory
        self.store = db.get_store("sqlite:")
        # Read schema from file
        with io.open('schema/sqlite.sql', 'r') as sql:
            schema = sql.read()
            # Create tables on memory database
            for command in schema.split(';'):
                self.store.execute(command)

        # Create some temporary directories
        self.media_dir = tempfile.mkdtemp()
        self.music_dir = tempfile.mkdtemp()
        # Add test folders
        self.assertEqual(
            FolderManager.add(self.store, 'media', self.media_dir),
            FolderManager.SUCCESS)
        self.assertEqual(
            FolderManager.add(self.store, 'music', self.music_dir),
            FolderManager.SUCCESS)

        folder = db.Folder()
        folder.root = False
        folder.name = 'non-root'
        folder.path = os.path.join(self.music_dir, 'subfolder')
        self.store.add(folder)

        artist = db.Artist()
        artist.name = 'Artist'

        album = db.Album()
        album.name = 'Album'
        album.artist = artist

        root = self.store.find(db.Folder, db.Folder.name == 'media').one()
        track = db.Track()
        track.title = 'Track'
        track.artist = artist
        track.album = album
        track.disc = 1
        track.number = 1
        track.path = os.path.join(self.media_dir, 'somefile')
        track.folder = root
        track.root_folder = root
        track.duration = 2
        track.content_type = 'audio/mpeg'
        track.bitrate = 320
        track.last_modification = 0
        self.store.add(track)

        self.store.commit()
    def setUp(self):
        # Create an empty sqlite database in memory
        self.store = db.get_store("sqlite:")
        # Read schema from file
        with io.open('schema/sqlite.sql', 'r') as sql:
            schema = sql.read()
            # Create tables on memory database
            for command in schema.split(';'):
                self.store.execute(command)

        # Create some temporary directories
        self.media_dir = tempfile.mkdtemp()
        self.music_dir = tempfile.mkdtemp()
        # Add test folders
        self.assertEqual(FolderManager.add(self.store, 'media', self.media_dir), FolderManager.SUCCESS)
        self.assertEqual(FolderManager.add(self.store, 'music', self.music_dir), FolderManager.SUCCESS)

        folder = db.Folder()
        folder.root = False
        folder.name = 'non-root'
        folder.path = os.path.join(self.music_dir, 'subfolder')
        self.store.add(folder)

        artist = db.Artist()
        artist.name = 'Artist'

        album = db.Album()
        album.name = 'Album'
        album.artist = artist

        root = self.store.find(db.Folder, db.Folder.name == 'media').one()
        track = db.Track()
        track.title = 'Track'
        track.artist = artist
        track.album = album
        track.disc = 1
        track.number = 1
        track.path = os.path.join(self.media_dir, 'somefile')
        track.folder = root
        track.root_folder = root
        track.duration = 2
        track.content_type = 'audio/mpeg'
        track.bitrate = 320
        track.last_modification = 0
        self.store.add(track)

        self.store.commit()
Beispiel #9
0
    def setUp(self):
        db.init_database("sqlite:")

        with db_session:
            folder = FolderManager.add("folder",
                                       os.path.abspath("tests/assets/folder"))
            self.assertIsNotNone(folder)

        self.folderid = folder.id
        self.__scan()
Beispiel #10
0
    def setUp(self):
        super(TranscodingTestCase, self).setUp()
        self._patch_client()

        with db_session:
            folder = FolderManager.add('Folder', 'tests/assets/folder')
            scanner = Scanner()
            scanner.scan(folder)
            scanner.finish()

            self.trackid = Track.get().id
Beispiel #11
0
    def setUp(self):
        super(TranscodingTestCase, self).setUp()
        self._patch_client()

        with db_session:
            folder = FolderManager.add("Folder", "tests/assets/folder")
            scanner = Scanner()
            scanner.queue_folder("Folder")
            scanner.run()

            self.trackid = Track.get().id
Beispiel #12
0
    def setUp(self):
        super(TranscodingTestCase, self).setUp()
        self._patch_client()

        with db_session:
            folder = FolderManager.add('Folder', 'tests/assets/folder')
            scanner = Scanner()
            scanner.scan(folder)
            scanner.finish()

            self.trackid = Track.get().id
Beispiel #13
0
    def test_add_folder(self):
        # Added in setUp()
        self.assertEqual(self.store.find(db.Folder).count(), 3)

        # Create duplicate
        self.assertEqual(
            FolderManager.add(self.store, 'media', self.media_dir),
            FolderManager.NAME_EXISTS)
        self.assertEqual(
            self.store.find(db.Folder, db.Folder.name == 'media').count(), 1)

        # Duplicate path
        self.assertEqual(
            FolderManager.add(self.store, 'new-folder', self.media_dir),
            FolderManager.PATH_EXISTS)
        self.assertEqual(
            self.store.find(db.Folder,
                            db.Folder.path == self.media_dir).count(), 1)

        # Invalid path
        path = os.path.abspath('/this/not/is/valid')
        self.assertEqual(FolderManager.add(self.store, 'invalid-path', path),
                         FolderManager.INVALID_PATH)
        self.assertEqual(
            self.store.find(db.Folder, db.Folder.path == path).count(), 0)

        # Subfolder of already added path
        path = os.path.join(self.media_dir, 'subfolder')
        os.mkdir(path)
        self.assertEqual(FolderManager.add(self.store, 'subfolder', path),
                         FolderManager.PATH_EXISTS)
        self.assertEqual(self.store.find(db.Folder).count(), 3)

        # Parent folder of an already added path
        path = os.path.join(self.media_dir, '..')
        self.assertEqual(FolderManager.add(self.store, 'parent', path),
                         FolderManager.SUBPATH_EXISTS)
        self.assertEqual(self.store.find(db.Folder).count(), 3)
Beispiel #14
0
def add_folder_post():
    error = False
    (name, path) = map(request.form.get, ['name', 'path'])
    if name in (None, ''):
        flash('The name is required.')
        error = True
    if path in (None, ''):
        flash('The path is required.')
        error = True
    if error:
        return render_template('addfolder.html')

    ret = FolderManager.add(store, name, path)
    if ret != FolderManager.SUCCESS:
        flash(FolderManager.error_str(ret))
        return render_template('addfolder.html')

    flash("Folder '%s' created. You should now run a scan" % name)

    return redirect(url_for('folder_index'))
Beispiel #15
0
def add_folder():
    if request.method == "GET":
        return render_template("addfolder.html")

    error = False
    (name, path) = map(request.form.get, ["name", "path"])
    if name in (None, ""):
        flash("The name is required.")
        error = True
    if path in (None, ""):
        flash("The path is required.")
        error = True
    if error:
        return render_template("addfolder.html")

    ret = FolderManager.add(store, name, path)
    if ret != FolderManager.SUCCESS:
        flash(FolderManager.error_str(ret))
        return render_template("addfolder.html")

    flash("Folder '%s' created. You should now run a scan" % name)

    return redirect(url_for("folder_index"))
Beispiel #16
0
def add_folder():
	if request.method == 'GET':
		return render_template('addfolder.html')

	error = False
	(name, path) = map(request.form.get, [ 'name', 'path' ])
	if name in (None, ''):
		flash('The name is required.')
		error = True
	if path in (None, ''):
		flash('The path is required.')
		error = True
	if error:
		return render_template('addfolder.html')

	ret = FolderManager.add(store, name, path)
	if ret != FolderManager.SUCCESS:
		flash(FolderManager.error_str(ret))
		return render_template('addfolder.html')

	flash("Folder '%s' created. You should now run a scan" % name)

	return redirect(url_for('folder_index'))
Beispiel #17
0
 def setUp(self):
     self.__dir = tempfile.mkdtemp()
     init_database("sqlite:")
     with db_session:
         FolderManager.add("folder", self.__dir)
Beispiel #18
0
 def setUp(self):
     super(WatcherTestCase, self).setUp()
     self.__dir = tempfile.mkdtemp()
     with self._get_store() as store:
         FolderManager.add(store, 'Folder', self.__dir)
     self._start()
Beispiel #19
0
 def setUp(self):
     super().setUp()
     self.__dir = tempfile.mkdtemp()
     with db_session:
         FolderManager.add("Folder", self.__dir)
     self._start()
Beispiel #20
0
 def setUp(self):
     self.__dir = tempfile.mkdtemp()
     shutil.copy("tests/assets/issue133.flac", self.__dir)
     init_database("sqlite:")
     with db_session:
         FolderManager.add("folder", self.__dir)