From be583cd63e9c2c7e8be246d7da2c9f2a1819dc8f Mon Sep 17 00:00:00 2001
From: Peter Kessen
Date: Wed, 16 Sep 2015 22:11:39 +0200
Subject: [PATCH] added test for beets.ui.commands
* added test of _do_query method
---
test/test_ui_commands.py | 108 +++++++++++++++++++++++++++++++++++++++
1 file changed, 108 insertions(+)
create mode 100644 test/test_ui_commands.py
diff --git a/test/test_ui_commands.py b/test/test_ui_commands.py
new file mode 100644
index 000000000..a926d298e
--- /dev/null
+++ b/test/test_ui_commands.py
@@ -0,0 +1,108 @@
+# -*- coding: utf8 -*-
+# This file is part of beets.
+# Copyright 2015, Adrian Sampson.
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+
+"""Your description
+"""
+import os
+import shutil
+
+from test import _common
+from test._common import unittest
+
+from beets import library
+from beets import ui
+from beets.ui import commands
+
+
+class QueryTest(_common.TestCase):
+ def setUp(self):
+ super(QueryTest, self).setUp()
+
+ self.io.install()
+
+ self.libdir = os.path.join(self.temp_dir, 'testlibdir')
+ os.mkdir(self.libdir)
+
+ # Add a file to the library but don't copy it in yet.
+ self.lib = library.Library(':memory:', self.libdir)
+
+ # Alternate destination directory.
+ self.otherdir = os.path.join(self.temp_dir, 'testotherdir')
+
+ def add_Item(self, filename='srcfile', templatefile='full.mp3'):
+ itempath = os.path.join(self.libdir, filename)
+ shutil.copy(os.path.join(_common.RSRC, templatefile), itempath)
+ item = library.Item.from_path(itempath)
+ self.lib.add(item)
+ return item, itempath
+
+ def add_album(self, items):
+ album = self.lib.add_album(items)
+ return album
+
+ def test_query_empty(self):
+ try:
+ items, albums = commands._do_query(self.lib, (), False)
+ raise Exception("A UserError should have been raised")
+ except ui.UserError:
+ pass
+
+ def test_query_empty_album(self):
+ try:
+ items, albums = commands._do_query(self.lib, (), True)
+ raise Exception("A UserError should have been raised")
+ except ui.UserError:
+ pass
+
+ def test_query_item(self):
+ self.i, self.itempath = self.add_Item()
+ items, albums = commands._do_query(self.lib, (), False)
+ self.assertEqual(len(albums), 0)
+ self.assertEqual(len(items), 1)
+
+ self.i, self.itempath = self.add_Item()
+ items, albums = commands._do_query(self.lib, (), False)
+ self.assertEqual(len(albums), 0)
+ self.assertEqual(len(items), 2)
+
+ def test_query_album(self):
+ self.i, self.itempath = self.add_Item()
+ self.album = self.add_album([self.i])
+# raise Exception(self.album)
+ items, albums = commands._do_query(self.lib, (), True)
+ self.assertEqual(len(items), 1)
+ self.assertEqual(len(albums), 1)
+ items, albums = commands._do_query(
+ self.lib, (), True, also_items=False)
+ self.assertEqual(len(items), 0)
+ self.assertEqual(len(albums), 1)
+
+ self.i, self.itempath = self.add_Item()
+ self.i2, self.itempath = self.add_Item()
+ self.album = self.add_album([self.i, self.i2])
+ items, albums = commands._do_query(self.lib, (), True)
+ self.assertEqual(len(items), 3)
+ self.assertEqual(len(albums), 2)
+ items, albums = commands._do_query(
+ self.lib, (), True, also_items=False)
+ self.assertEqual(len(items), 0)
+ self.assertEqual(len(albums), 2)
+
+
+def suite():
+ return unittest.TestLoader().loadTestsFromName(__name__)
+
+if __name__ == b'__main__':
+ unittest.main(defaultTest='suite')