--- /dev/null
+
+__all__ = ['TestCase', 'main']
+
+
+import os
+import unittest
+from m_librarian.db import open_db, init_db
+
+
+class TestCase(unittest.TestCase):
+ def setUp(self):
+ try:
+ os.remove('/tmp/m_librarian-test.sqlite')
+ except OSError:
+ pass
+ open_db('sqlite:///tmp/m_librarian-test.sqlite')
+ init_db()
+
+ def tearDown(self):
+ try:
+ os.remove('/tmp/m_librarian-test.sqlite')
+ except OSError:
+ pass
+
+
+def main():
+ try:
+ unittest.main(testRunner=unittest.TextTestRunner())
+ except SystemExit, msg:
+ result = msg.args[0]
+ else:
+ result = 0
+ raise SystemExit(result)
--- /dev/null
+#! /usr/bin/env python
+
+
+import os
+import sys
+import subprocess
+
+
+def isexecutable(filename):
+ infile = open(filename, 'r')
+ magic = infile.read(2)
+ infile.close()
+ return magic == "#!"
+
+
+def collect_tests():
+ tests = []
+ for dirpath, dirs, files in os.walk("tests"):
+ tests.extend(
+ [os.path.join(dirpath, filename) for filename in files
+ if filename.startswith("test") and filename.endswith(".py")
+ ])
+ return [test[:-3].replace(os.sep, '.') for test in tests
+ if isexecutable(test)]
+
+
+def main():
+ os.chdir(os.path.join(os.path.dirname(sys.argv[0]), os.pardir))
+ tests = collect_tests()
+
+ os.environ["PYTHONPATH"] = os.curdir
+
+ for test in sorted(tests):
+ sys.stdout.write("Test: %s... " % test)
+ sys.stdout.flush()
+ rc = subprocess.call((sys.executable, '-m', test))
+ if rc:
+ sys.stdout.write("ERROR\n")
+ else:
+ sys.stdout.write("Ok\n")
+ sys.stdout.flush()
+
+if __name__ == '__main__':
+ main()
--- /dev/null
+#! /usr/bin/env python
+
+
+from tests import TestCase, main
+from m_librarian.db import Genre
+from m_librarian.glst import import_glst
+
+
+class TestGlst(TestCase):
+ def test_import_glst(self):
+ import_glst()
+ self.assertEqual(Genre.select().count(), 340)
+
+
+if __name__ == "__main__":
+ main()