def test_that_formulas_in_cache_with_no_file_raise_key_error(self): c = caching.ImageCache("gladtex.cache", keep_old_cache=False) write("foo.png", "dummy") c.add_formula("\\tau", self.pos, "foo.png") c.write() os.remove("foo.png") c = caching.ImageCache("gladtex.cache", keep_old_cache=False) with self.assertRaises(KeyError): c.get_data_for("foo.png", "False")
def test_that_formulas_in_cache_with_no_file_raise_key_error(self): c = caching.ImageCache('gladtex.cache', keep_old_cache=False) write('foo.png', 'dummy') c.add_formula('\\tau', self.pos, 'foo.png') c.write() os.remove('foo.png') c = caching.ImageCache('gladtex.cache', keep_old_cache=False) with self.assertRaises(KeyError): c.get_data_for('foo.png', 'False')
def test_that_correct_pos_and_path_are_returned_after_writing_the_cache_back( self): c = caching.ImageCache() formula = r"g(x) = \ln(x)" write('file.png', 'dummy') c.add_formula(formula, self.pos, 'file.png', displaymath=False) c.write() c = caching.ImageCache() self.assertTrue(c.contains(formula, False)) data = c.get_data_for(formula, False) self.assertEqual(data['pos'], self.pos) self.assertEqual(data['path'], 'file.png')
def test_that_remove_actually_removes(self): form1 = "\\int e^x dy" write("happyness.png", "binaryBinary_binary") c = caching.ImageCache() c.add_formula(form1, self.pos, "happyness.png") c.remove_formula(form1, False) self.assertEqual(len(c), 0)
def test_formulas_are_not_added_twice(self): form1 = r"\ln(x) \neq e^x" write("spass.png", "binaryBinary_binary") c = caching.ImageCache() for i in range(1, 10): c.add_formula(form1, self.pos, "spass.png") self.assertEqual(len(c), 1)
def test_that_invalid_style_is_detected(self): write('foo.png', "dummy") c = caching.ImageCache('gladtex.cache') c.add_formula('\\tau', self.pos, 'foo.png', False) c.add_formula('\\theta', self.pos, 'foo.png', True) self.assertRaises(ValueError, c.add_formula, '\\gamma', self.pos, 'foo.png', 'some stuff')
def test_that_remove_actually_removes(self): form1 = '\\int e^x dy' write('happyness.png', 'binaryBinary_binary') c = caching.ImageCache() c.add_formula(form1, self.pos, 'happyness.png') c.remove_formula(form1, False) self.assertEqual(len(c), 0)
def test_that_invalid_style_is_detected(self): write("foo.png", "dummy") c = caching.ImageCache("gladtex.cache") c.add_formula("\\tau", self.pos, "foo.png", False) c.add_formula("\\theta", self.pos, "foo.png", True) self.assertRaises(ValueError, c.add_formula, "\\gamma", self.pos, "foo.png", "some stuff")
def test_formulas_are_not_added_twice(self): form1 = r'\ln(x) \neq e^x' write('spass.png', 'binaryBinary_binary') c = caching.ImageCache() for i in range(1, 10): c.add_formula(form1, self.pos, 'spass.png') self.assertEqual(len(c), 1)
def test_that_invalid_caches_are_removed_automatically_if_desired(self): file_was_removed = lambda x: self.assertFalse( os.path.exists(x), "expected that file %s was removed, but it still exists" % x) write('gladtex.cache', 'some non-json rubbish') c = caching.ImageCache('gladtex.cache', keep_old_cache=False) file_was_removed('gladtex.cache') # try the same in a subdirectory os.mkdir('foo') cache_path = os.path.join('foo', 'gladtex.cache') eqn1_path = os.path.join('foo', 'eqn000.png') eqn2_path = os.path.join('foo', 'eqn003.png') write(cache_path, 'some non-json rubbish') write(eqn1_path, 'binary') write(eqn2_path, 'more binary') c = caching.ImageCache(cache_path, keep_old_cache=False) file_was_removed(cache_path) file_was_removed(eqn1_path) file_was_removed(eqn2_path)
def test_that_invalid_caches_are_removed_automatically_if_desired(self): file_was_removed = lambda x: self.assertFalse( os.path.exists(x), "expected that file %s was removed, but it still exists" % x, ) write("gladtex.cache", "some non-json rubbish") c = caching.ImageCache("gladtex.cache", keep_old_cache=False) file_was_removed("gladtex.cache") # try the same in a subdirectory os.mkdir("foo") cache_path = os.path.join("foo", "gladtex.cache") eqn1_path = os.path.join("foo", "eqn000.png") eqn2_path = os.path.join("foo", "eqn003.png") write(cache_path, "some non-json rubbish") write(eqn1_path, "binary") write(eqn2_path, "more binary") c = caching.ImageCache(cache_path, keep_old_cache=False) file_was_removed(cache_path) file_was_removed(eqn1_path) file_was_removed(eqn2_path)
def test_that_backslash_in_path_is_replaced_through_slash(self): c = caching.ImageCache('gladtex.cache') os.mkdir('bilder') write(os.path.join('bilder', 'foo.png'), str(0xdeadbeef)) c.add_formula('\\tau', self.pos, 'bilder\\foo.png', False) self.assertTrue('/' in c.get_data_for('\\tau', False)['path'])
def test_that_absolute_paths_trigger_OSError(self): c = caching.ImageCache("gladtex.cache") write("foo.png", "dummy") fn = os.path.abspath("foo.png") self.assertRaises(OSError, c.add_formula, "\\tau", self.pos, fn, False)
def test_that_invalid_cach_entries_are_detected(self): # entry is invalid if file doesn't exist c = caching.ImageCache() formula = r"f(x) = \ln(x)" self.assertRaises(OSError, c.add_formula, formula, self.pos, 'file.png')
def test_empty_cache_works_fine(self): write('foo.png', 'muha') c = caching.ImageCache('file.png') formula = r"f(x) = \ln(x)" c.add_formula(formula, self.pos, 'foo.png') self.assertTrue(c.contains(formula, False))
def test_that_backslash_in_path_is_replaced_through_slash(self): c = caching.ImageCache("gladtex.cache") os.mkdir("bilder") write(os.path.join("bilder", "foo.png"), str(0xDEADBEEF)) c.add_formula("\\tau", self.pos, "bilder\\foo.png", False) self.assertTrue("/" in c.get_data_for("\\tau", False)["path"])
def test_removal_of_non_existing_formula_raises_exception(self): c = caching.ImageCache() self.assertRaises(KeyError, c.remove_formula, 'Haha!', False)
def test_that_invalid_version_is_detected(self): c = caching.ImageCache('gladtex.cache') c._ImageCache__set_version('invalid.stuff') c.write() self.assertRaises(caching.JsonParserException, caching.ImageCache, 'gladtex.cache')
def test_that_absolute_paths_trigger_OSError(self): c = caching.ImageCache('gladtex.cache') write('foo.png', "dummy") fn = os.path.abspath('foo.png') self.assertRaises(OSError, c.add_formula, '\\tau', self.pos, fn, False)