beets/test/test_permissions.py
2015-08-03 16:21:46 +03:00

73 lines
2.3 KiB
Python

"""Tests for the 'permissions' plugin.
"""
from __future__ import (division, absolute_import, print_function,
unicode_literals)
from test._common import unittest
from test.helper import TestHelper
from beetsplug.permissions import (check_permissions,
convert_perm,
dirs_in_library)
class PermissionsPluginTest(unittest.TestCase, TestHelper):
def setUp(self):
self.setup_beets()
self.load_plugins('permissions')
self.config['permissions'] = {
'file': 777,
'dir': 777}
def tearDown(self):
self.teardown_beets()
self.unload_plugins()
def test_permissions_on_album_imported(self):
self.importer = self.create_importer()
self.importer.run()
item = self.lib.items().get()
file_perm = self.config['permissions']['file'].get()
file_perm = convert_perm(file_perm)
dir_perm = self.config['permissions']['dir'].get()
dir_perm = convert_perm(dir_perm)
music_dirs = dirs_in_library(self.lib.directory, item.path)
self.assertTrue(check_permissions(item.path, file_perm))
self.assertFalse(check_permissions(item.path, convert_perm(644)))
for path in music_dirs:
self.assertTrue(check_permissions(path, dir_perm))
self.assertFalse(check_permissions(path, convert_perm(644)))
def test_permissions_on_item_imported(self):
self.config['import']['singletons'] = True
self.importer = self.create_importer()
self.importer.run()
item = self.lib.items().get()
file_perm = self.config['permissions']['file'].get()
file_perm = convert_perm(file_perm)
dir_perm = self.config['permissions']['dir'].get()
dir_perm = convert_perm(dir_perm)
music_dirs = dirs_in_library(self.lib.directory, item.path)
self.assertTrue(check_permissions(item.path, file_perm))
self.assertFalse(check_permissions(item.path, convert_perm(644)))
for path in music_dirs:
self.assertTrue(check_permissions(path, dir_perm))
self.assertFalse(check_permissions(path, convert_perm(644)))
def suite():
return unittest.TestLoader().loadTestsFromName(__name__)
if __name__ == b'__main__':
unittest.main(defaultTest='suite')