""" Tests of the LMS XBlock Runtime and associated utilities """ from ddt import ddt, data from unittest import TestCase from lms.lib.xblock.runtime import quote_slashes, unquote_slashes TEST_STRINGS = [ '', 'foobar', 'foo/bar', 'foo/bar;', 'foo;;bar', 'foo;_bar', 'foo/', '/bar', 'foo//bar', 'foo;;;bar', ] @ddt class TestQuoteSlashes(TestCase): """Test the quote_slashes and unquote_slashes functions""" @data(*TEST_STRINGS) def test_inverse(self, test_string): self.assertEquals(test_string, unquote_slashes(quote_slashes(test_string))) @data(*TEST_STRINGS) def test_escaped(self, test_string): self.assertNotIn('/', quote_slashes(test_string))