예제 #1
0
 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")
예제 #2
0
 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')
예제 #3
0
 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')
예제 #4
0
 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)
예제 #5
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)
예제 #6
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')
예제 #7
0
 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)
예제 #8
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")
예제 #9
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)
예제 #10
0
 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)
예제 #11
0
 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)
예제 #12
0
 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'])
예제 #13
0
 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)
예제 #14
0
 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')
예제 #15
0
 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))
예제 #16
0
 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"])
예제 #17
0
 def test_removal_of_non_existing_formula_raises_exception(self):
     c = caching.ImageCache()
     self.assertRaises(KeyError, c.remove_formula, 'Haha!', False)
예제 #18
0
 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')
예제 #19
0
 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)