diff --git a/tests/autojump.py b/tests/autojump.py deleted file mode 120000 index 4581d70..0000000 --- a/tests/autojump.py +++ /dev/null @@ -1 +0,0 @@ -../bin/autojump \ No newline at end of file diff --git a/tests/database.txt b/tests/database.txt deleted file mode 100644 index 13238ea..0000000 --- a/tests/database.txt +++ /dev/null @@ -1 +0,0 @@ -91.5647698216 /home/user/code/autojump diff --git a/tests/runtests.py b/tests/runtests.py deleted file mode 100755 index ece746f..0000000 --- a/tests/runtests.py +++ /dev/null @@ -1,227 +0,0 @@ -#!/usr/bin/env python2 -# -*- coding: utf-8 -*- -from __future__ import division -import autojump -import contextlib -import random -import os -import shutil -import sys -import tempfile -import unittest - -@contextlib.contextmanager -def no_stderr(): - savestderr = sys.stderr - class DevNull(object): - def write(self, _): pass - sys.stderr = DevNull() - yield - sys.stderr = savestderr - -# test suite -class TestAutojump(unittest.TestCase): - - def setUp(self): - autojump.CONFIG_DIR = tempfile.mkdtemp() - autojump.TESTING = True - self.fd, self.fname = tempfile.mkstemp() - self.db = autojump.Database(self.fname) - - random.seed() - - def tearDown(self): - os.remove(self.fname) - if os.path.isfile(self.fname + ".bak"): - os.remove(self.fname + ".bak") - if (os.path.exists(autojump.CONFIG_DIR) and - ('tmp' in autojump.CONFIG_DIR or 'temp' in autojump.CONFIG_DIR)): - shutil.rmtree(autojump.CONFIG_DIR) - - def test_config(self): - self.assertEqual(autojump.COMPLETION_SEPARATOR, '__') - - def test_db_add(self): - self.db.add('/1', 100) - self.assertEqual(self.db.get_weight('/1'), 100) - self.db.add('/2', 10) - self.assertEqual(self.db.get_weight('/2'), 10) - self.db.add('/2', 10) - self.assertEqual(self.db.get_weight('/2'), 14.142135623730951) - - def test_db_decrease(self): - self.db.add('/1', 10) - self.db.decrease('/1', 50) - self.assertEquals(self.db.get_weight('/1'), 0) - self.db.add('/2', 100) - self.db.decrease('/2', 50) - self.assertEquals(self.db.get_weight('/2'), 50) - - def test_db_get_weight(self): - self.assertEqual(self.db.get_weight('/'), 0) - - def test_db_decay(self): - self.db.add('/1', 10) - self.db.decay() - self.assertTrue(self.db.get_weight('/1') < 10) - - def test_db_load_existing(self): - self.db = autojump.Database('tests/database.txt') - self.assertTrue(len(self.db) > 0) - - def test_db_load_empty(self): - # setup - _, fname = tempfile.mkstemp() - db = autojump.Database(fname) - - try: - # test - self.assertEquals(len(self.db), 0) - finally: - # teardown - os.remove(fname) - - def test_db_load_backup(self): - # setup - fname = '/tmp/autojump_test_db_load_backup_' + str(random.randint(0,32678)) - db = autojump.Database(fname) - db.add('/1') - os.rename(fname, fname + '.bak') - - try: - # test - with no_stderr(): - db = autojump.Database(fname) - self.assertTrue(len(db.data) > 0) - self.assertTrue(os.path.isfile(fname)) - finally: - # teardown - os.remove(fname) - os.remove(fname + '.bak') - - def test_db_purge(self): - self.db.add('/1') - self.db.purge() - self.assertEquals(len(self.db), 0) - - def test_db_save(self): - # setup - fname = '/tmp/autojump_test_db_save_' + str(random.randint(0,32678)) + '.txt' - db = autojump.Database(fname) - - try: - # test - db.save() - self.assertTrue(os.path.isfile(fname)) - finally: - # teardown - os.remove(fname) - os.remove(fname + '.bak') - - def test_db_trim(self): - self.db.add('/1') - self.db.add('/2') - self.db.add('/3') - self.db.add('/4') - self.db.add('/5') - self.db.add('/6') - self.db.add('/7') - self.db.add('/8') - self.db.add('/9') - self.db.add('/10') - self.assertEquals(len(self.db), 10) - self.db.trim() - self.assertEquals(len(self.db), 9) - - def test_db_decode(self): - #FIXME - self.assertEquals(autojump.decode('foo'), 'foo') - - def test_db_unico(self): - #FIXME - self.assertEquals(autojump.unico('foo'), u'foo') - - def test_match_normal(self): - max_matches = 1 - self.db.add('/foo', 10) - self.db.add('/foo/bar', 20) - - patterns = [u''] - results = autojump.find_matches(self.db, patterns, max_matches) - self.assertEquals(results[0], '/foo/bar') - - patterns = [u'random'] - results = autojump.find_matches(self.db, patterns, max_matches) - self.assertTrue(len(results) == 0) - - patterns = [u'fo'] - results = autojump.find_matches(self.db, patterns, max_matches) - self.assertEquals(results[0], '/foo') - - self.db.add('/foo/bat', 15) - patterns = [u'ba'] - results = autojump.find_matches(self.db, patterns, max_matches) - self.assertEquals(results[0], '/foo/bar') - - self.db.add('/code/inbox', 5) - self.db.add('/home/user/inbox', 10) - patterns = [u'inbox'] - results = autojump.find_matches(self.db, patterns, max_matches) - self.assertEquals(results[0], '/home/user/inbox') - patterns = [u'co', u'in'] - results = autojump.find_matches(self.db, patterns, max_matches) - self.assertEquals(results[0], '/code/inbox') - - def test_match_completion(self): - max_matches = 9 - ignore_case = True - self.db.add('/1') - self.db.add('/2') - self.db.add('/3') - self.db.add('/4') - self.db.add('/5', 20) - self.db.add('/6', 15) - self.db.add('/7') - self.db.add('/8') - self.db.add('/9') - - patterns = [u''] - results = autojump.find_matches(self.db, patterns, max_matches, ignore_case) - self.assertEquals(results, ['/5', '/6', '/9', '/8', '/7', '/4', '/3', '/2', '/1']) - - def test_match_case_insensitive(self): - max_matches = 1 - ignore_case = True - self.db.add('/FOO', 20) - self.db.add('/foo', 10) - - patterns = [u'fo'] - results = autojump.find_matches(self.db, patterns, max_matches, ignore_case) - self.assertEquals(results[0], '/FOO') - - def test_match_fuzzy(self): - max_matches = 1 - ignore_case = True - fuzzy_search = True - self.db.add('/foo', 10) - self.db.add('/foo/bar', 20) - self.db.add('/abcdefg', 10) - - patterns = [u'random'] - results = autojump.find_matches(self.db, patterns, max_matches, ignore_case, fuzzy_search) - self.assertTrue(len(results) == 0) - - patterns = [u'abcdefg'] - results = autojump.find_matches(self.db, patterns, max_matches, ignore_case, fuzzy_search) - self.assertEquals(results[0], '/abcdefg') - - patterns = [u'abcefg'] - results = autojump.find_matches(self.db, patterns, max_matches, ignore_case, fuzzy_search) - self.assertEquals(results[0], '/abcdefg') - - patterns = [u'bacef'] - results = autojump.find_matches(self.db, patterns, max_matches, ignore_case, fuzzy_search) - self.assertEquals(results[0], '/abcdefg') - -if __name__ == '__main__': - unittest.main()