def create_data(self): # Create some users self.assertIsInstance( UserManager.add("alice", "ALICE", "*****@*****.**", True), db.User) self.assertIsInstance( UserManager.add("bob", "BOB", "*****@*****.**", False), db.User) self.assertIsInstance( UserManager.add("charlie", "CHARLIE", "*****@*****.**", False), db.User) folder = db.Folder(name="Root", path="tests/assets", root=True) artist = db.Artist(name="Artist") album = db.Album(name="Album", artist=artist) track = db.Track( title="Track", disc=1, number=1, duration=1, artist=artist, album=album, path="tests/assets/empty", folder=folder, root_folder=folder, bitrate=320, last_modification=0, ) playlist = db.Playlist(name="Playlist", user=db.User.get(name="alice")) playlist.add(track)
def setUp(self): # Create an empty sqlite database in memory self.store = db.get_store("sqlite:") # Read schema from file with open('schema/sqlite.sql') as sql: schema = sql.read() # Create tables on memory database for command in schema.split(';'): self.store.execute(command) # Create some users self.assertEqual(UserManager.add(self.store, 'alice', 'alice', '*****@*****.**', True), UserManager.SUCCESS) self.assertEqual(UserManager.add(self.store, 'bob', 'bob', '*****@*****.**', False), UserManager.SUCCESS) self.assertEqual(UserManager.add(self.store, 'charlie', 'charlie', '*****@*****.**', False), UserManager.SUCCESS)
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 users self.assertEqual(UserManager.add(self.store, 'alice', 'ALICE', '*****@*****.**', True), UserManager.SUCCESS) self.assertEqual(UserManager.add(self.store, 'bob', 'BOB', '*****@*****.**', False), UserManager.SUCCESS) self.assertEqual(UserManager.add(self.store, 'charlie', 'CHARLIE', '*****@*****.**', False), UserManager.SUCCESS) folder = db.Folder() folder.name = 'Root' folder.path = 'tests/assets' folder.root = True artist = db.Artist() artist.name = 'Artist' album = db.Album() album.name = 'Album' album.artist = artist track = db.Track() track.title = 'Track' track.disc = 1 track.number = 1 track.duration = 1 track.artist = artist track.album = album track.path = 'tests/assets/empty' track.folder = folder track.root_folder = folder track.duration = 2 track.content_type = 'audio/mpeg' track.bitrate = 320 track.last_modification = 0 self.store.add(track) self.store.commit() playlist = db.Playlist() playlist.name = 'Playlist' playlist.user = self.store.find(db.User, db.User.name == 'alice').one() playlist.add(track) self.store.add(playlist) self.store.commit()
def add_user(): if request.method == 'GET': return render_template('adduser.html', admin = UserManager.get(store, session.get('userid'))[1].admin) error = False (name, passwd, passwd_confirm, mail, admin) = map(request.form.get, [ 'user', 'passwd', 'passwd_confirm', 'mail', 'admin' ]) if name in (None, ''): flash('The name is required.') error = True if passwd in (None, ''): flash('Please provide a password.') error = True elif passwd != passwd_confirm: flash("The passwords don't match.") error = True if admin is None: admin = True if store.find(User, User.admin == True).count() == 0 else False else: admin = True if not error: status = UserManager.add(store, name, passwd, mail, admin) if status == UserManager.SUCCESS: flash("User '%s' successfully added" % name) return redirect(url_for('user_index')) else: flash(UserManager.error_str(status)) return render_template('adduser.html', admin = UserManager.get(store, session.get('userid'))[1].admin)
def add_user_post(): error = False (name, passwd, passwd_confirm, mail, admin) = map(request.form.get, [ 'user', 'passwd', 'passwd_confirm', 'mail', 'admin' ]) if not name: flash('The name is required.') error = True if not passwd: flash('Please provide a password.') error = True elif passwd != passwd_confirm: flash("The passwords don't match.") error = True if admin is None: admin = True if store.find(User, User.admin == True).count() == 0 else False else: admin = True if not error: status = UserManager.add(store, name, passwd, mail, admin) if status == UserManager.SUCCESS: flash("User '%s' successfully added" % name) return redirect(url_for('user_index')) else: flash(UserManager.error_str(status)) return add_user_form()
def setUp(self): self.__db = tempfile.mkstemp() self.__dir = tempfile.mkdtemp() self.config = TestConfig(self.__with_webui__, self.__with_api__) self.config.BASE["database_uri"] = "sqlite:///" + self.__db[1] self.config.WEBAPP["cache_dir"] = self.__dir init_database(self.config.BASE["database_uri"]) release_database() self.__app = create_application(self.config) self.client = self.__app.test_client() with db_session: UserManager.add("alice", "Alic3", admin=True) UserManager.add("bob", "B0b")
def setUp(self): self.__dir = tempfile.mkdtemp() config = TestConfig(self.__with_webui__, self.__with_api__) config.WEBAPP['cache_dir'] = self.__dir app = create_application(config) self.__ctx = app.app_context() self.__ctx.push() self.store = store with io.open('schema/sqlite.sql', 'r') as sql: schema = sql.read() for statement in schema.split(';'): self.store.execute(statement) self.store.commit() self.client = app.test_client() UserManager.add(self.store, 'alice', 'Alic3', '*****@*****.**', True) UserManager.add(self.store, 'bob', 'B0b', '*****@*****.**', False)
def user_add(): if not request.user.admin: return request.error_formatter(50, 'Admin restricted') username, password, email, admin = map(request.args.get, [ 'username', 'password', 'email', 'adminRole' ]) if not username or not password or not email: return request.error_formatter(10, 'Missing parameter') admin = True if admin in (True, 'True', 'true', 1, '1') else False status = UserManager.add(store, username, password, email, admin) if status == UserManager.NAME_EXISTS: return request.error_formatter(0, 'There is already a user with that username') return request.formatter({})
def user_add(): if not request.user.admin: return request.error_formatter(50, 'Admin restricted') username, password, email, admin = map( request.args.get, ['username', 'password', 'email', 'adminRole']) if not username or not password or not email: return request.error_formatter(10, 'Missing parameter') admin = True if admin in (True, 'True', 'true', 1, '1') else False status = UserManager.add(store, username, password, email, admin) if status == UserManager.NAME_EXISTS: return request.error_formatter( 0, 'There is already a user with that username') return request.formatter({})
from supysonic.managers.user import UserManager import sys import unittest import uuid # Create an empty sqlite database in memory store = db.get_store("sqlite:") # Read schema from file with open('schema/sqlite.sql') as sql: schema = sql.read() # Create tables on memory database for command in schema.split(';'): store.execute(command) # Create some users UserManager.add(store, 'alice', 'alice', '*****@*****.**', True) UserManager.add(store, 'bob', 'bob', '*****@*****.**', False) UserManager.add(store, 'charlie', 'charlie', '*****@*****.**', False) # Create a mockup of web from flask import Flask app = Flask(__name__) class web(): app = app store = store sys.modules['supysonic.web'] = web() # Import module and set app in test mode import supysonic.api class ApiTestCase(unittest.TestCase):
def test_add_user(self): # Create duplicate self.assertEqual(UserManager.add(self.store, 'alice', 'alice', '*****@*****.**', True), UserManager.NAME_EXISTS)
def test_add_user(self): # Added in setUp() self.assertEqual(self.store.find(db.User).count(), 3) # Create duplicate self.assertEqual(UserManager.add(self.store, 'alice', 'Alic3', '*****@*****.**', True), UserManager.NAME_EXISTS)