예제 #1
0
class EnvironmentFindTests(TestCase):

    def setUp(self):
        self.environment = Environment(STATIC_DIR)
        self.environment.register_defaults()
        self.environment.finders.register(FakeFinder())
        self.environment.compilers.register(
            '.coffee', FakeCompiler('application/javascript'))

    def check_asset_attributes(self, attrs, path):
        self.assertIsInstance(attrs, AssetAttributes)
        self.assertIs(attrs.environment, self.environment)
        self.assertEqual(attrs.path, path)

    def test_find_by_path(self):
        attrs, path = self.environment.find('js/models.js.coffee')
        self.check_asset_attributes(attrs, 'js/models.js.coffee')
        self.assertEqual(path, '/assets/js/models.js.coffee')

    def test_find_nothing_by_path(self):
        with self.assertRaises(FileNotFound):
            self.environment.find('js/models.js')

    def test_find_by_path_list(self):
        attrs, path = self.environment.find(['js/app.js', 'js/app/index.js'])
        self.check_asset_attributes(attrs, 'js/app/index.js')
        self.assertEqual(path, '/assets/js/app/index.js')

    def test_find_nothing_by_path_list(self):
        with self.assertRaises(FileNotFound):
            self.environment.find(['style.css', 'style/index.css'])

    def test_find_by_asset_attributes(self):
        attrs = AssetAttributes(self.environment, 'js/app.js')
        attrs, path = self.environment.find(attrs)
        self.check_asset_attributes(attrs, 'js/app/index.js')
        self.assertEqual(path, '/assets/js/app/index.js')

    def test_find_nothing_by_asset_attributes(self):
        attrs = AssetAttributes(self.environment, 'js/models.js')
        with self.assertRaises(FileNotFound):
            self.environment.find(attrs)

    def test_find_by_logical_path(self):
        attrs, path = self.environment.find('js/models.js', logical=True)
        self.check_asset_attributes(attrs, 'js/models.js.coffee')
        self.assertEqual(path, '/assets/js/models.js.coffee')

    def test_find_nothing_by_logical_path(self):
        with self.assertRaises(FileNotFound):
            self.environment.find('js/views.js', logical=True)

    def test_save_file(self):
        with remove_static_dir():
            self.environment.save_file('js/script.js', 'hello world')
            with open(os.path.join(STATIC_DIR, 'js', 'script.js')) as f:
                self.assertEqual(f.read(), 'hello world')
예제 #2
0
class EnvironmentFindTests(TestCase):
    def setUp(self):
        self.environment = Environment(STATIC_DIR)
        self.environment.register_defaults()
        self.environment.finders.register(FakeFinder())
        self.environment.engines.register('.coffee',
                                          FakeEngine('application/javascript'))

    def check_asset_attributes(self, attrs, path):
        self.assertIsInstance(attrs, AssetAttributes)
        self.assertIs(attrs.environment, self.environment)
        self.assertEqual(attrs.path, path)

    def test_find_by_path(self):
        attrs, path = self.environment.find('js/models.js.coffee')
        self.check_asset_attributes(attrs, 'js/models.js.coffee')
        self.assertEqual(path, '/assets/js/models.js.coffee')

    def test_find_nothing_by_path(self):
        with self.assertRaises(FileNotFound):
            self.environment.find('js/models.js')

    def test_find_by_path_list(self):
        attrs, path = self.environment.find(['js/app.js', 'js/app/index.js'])
        self.check_asset_attributes(attrs, 'js/app/index.js')
        self.assertEqual(path, '/assets/js/app/index.js')

    def test_find_nothing_by_path_list(self):
        with self.assertRaises(FileNotFound):
            self.environment.find(['style.css', 'style/index.css'])

    def test_find_by_asset_attributes(self):
        attrs = AssetAttributes(self.environment, 'js/app.js')
        attrs, path = self.environment.find(attrs)
        self.check_asset_attributes(attrs, 'js/app/index.js')
        self.assertEqual(path, '/assets/js/app/index.js')

    def test_find_nothing_by_asset_attributes(self):
        attrs = AssetAttributes(self.environment, 'js/models.js')
        with self.assertRaises(FileNotFound):
            self.environment.find(attrs)

    def test_find_by_logical_path(self):
        attrs, path = self.environment.find('js/models.js', logical=True)
        self.check_asset_attributes(attrs, 'js/models.js.coffee')
        self.assertEqual(path, '/assets/js/models.js.coffee')

    def test_find_nothing_by_logical_path(self):
        with self.assertRaises(FileNotFound):
            self.environment.find('js/views.js', logical=True)

    def test_save_file(self):
        with remove_static_dir():
            self.environment.save_file('js/script.js', 'hello world')
            with open(os.path.join(STATIC_DIR, 'js', 'script.js')) as f:
                self.assertEqual(f.read(), 'hello world')
예제 #3
0
class EnvironmentFindTests(TestCase):

    def setUp(self):
        self.environment = Environment(STATIC_DIR)
        self.environment.register_defaults()
        self.environment.finders.register(FakeFinder())
        self.environment.compilers.register(
            '.coffee', FakeCompiler('application/javascript'))

    def check_asset_attributes(self, attrs, path):
        self.assertIsInstance(attrs, AssetAttributes)
        self.assertIs(attrs.environment, self.environment)
        self.assertEqual(attrs.path, path)

    def test_find_by_path(self):
        attrs, path = self.environment.find('js/models.js.coffee')
        self.check_asset_attributes(attrs, 'js/models.js.coffee')
        self.assertEqual(path, '/assets/js/models.js.coffee')

    def test_find_nothing_by_path(self):
        with self.assertRaises(FileNotFound):
            self.environment.find('js/models.js')

    def test_find_by_asset_attributes(self):
        attrs = AssetAttributes(self.environment, 'js/app.js')
        attrs, path = self.environment.find(attrs)
        self.check_asset_attributes(attrs, 'js/app/index.js')
        self.assertEqual(path, '/assets/js/app/index.js')

    def test_find_nothing_by_asset_attributes(self):
        attrs = AssetAttributes(self.environment, 'js/models.js')
        with self.assertRaises(FileNotFound):
            self.environment.find(attrs)

    def test_find_by_logical_path(self):
        attrs, path = self.environment.find('js/models.js', logical=True)
        self.check_asset_attributes(attrs, 'js/models.js.coffee')
        self.assertEqual(path, '/assets/js/models.js.coffee')

    def test_find_by_logical_path_with_unrecognized_extension(self):
        attrs, path = self.environment.find('images/logo.png', logical=True)
        self.check_asset_attributes(attrs, 'images/logo.png')
        self.assertEqual(path, '/assets/images/logo.png')

    def test_find_nothing_by_logical_path(self):
        with self.assertRaises(FileNotFound):
            self.environment.find('js/views.js', logical=True)

    def test_save_file(self):
        source = str('hello world').encode('utf-8')
        with remove_static_dir():
            self.environment.save_file('js/script.js', source)
            with open(os.path.join(STATIC_DIR, 'js', 'script.js'), 'rb') as f:
                self.assertEqual(f.read(), source)
예제 #4
0
class EnvironmentFindTests(TestCase):
    def setUp(self):
        self.environment = Environment(STATIC_DIR)
        self.environment.register_defaults()
        self.environment.finders.register(FakeFinder())
        self.environment.compilers.register(".coffee", FakeCompiler("application/javascript"))

    def check_asset_attributes(self, attrs, path):
        self.assertIsInstance(attrs, AssetAttributes)
        self.assertIs(attrs.environment, self.environment)
        self.assertEqual(attrs.path, path)

    def test_find_by_path(self):
        attrs, path = self.environment.find("js/models.js.coffee")
        self.check_asset_attributes(attrs, "js/models.js.coffee")
        self.assertEqual(path, "/assets/js/models.js.coffee")

    def test_find_nothing_by_path(self):
        with self.assertRaises(FileNotFound):
            self.environment.find("js/models.js")

    def test_find_by_path_list(self):
        attrs, path = self.environment.find(["js/app.js", "js/app/index.js"])
        self.check_asset_attributes(attrs, "js/app/index.js")
        self.assertEqual(path, "/assets/js/app/index.js")

    def test_find_nothing_by_path_list(self):
        with self.assertRaises(FileNotFound):
            self.environment.find(["style.css", "style/index.css"])

    def test_find_by_asset_attributes(self):
        attrs = AssetAttributes(self.environment, "js/app.js")
        attrs, path = self.environment.find(attrs)
        self.check_asset_attributes(attrs, "js/app/index.js")
        self.assertEqual(path, "/assets/js/app/index.js")

    def test_find_nothing_by_asset_attributes(self):
        attrs = AssetAttributes(self.environment, "js/models.js")
        with self.assertRaises(FileNotFound):
            self.environment.find(attrs)

    def test_find_by_logical_path(self):
        attrs, path = self.environment.find("js/models.js", logical=True)
        self.check_asset_attributes(attrs, "js/models.js.coffee")
        self.assertEqual(path, "/assets/js/models.js.coffee")

    def test_find_by_logical_path_with_unrecognized_extension(self):
        attrs, path = self.environment.find("images/logo.png", logical=True)
        self.check_asset_attributes(attrs, "images/logo.png")
        self.assertEqual(path, "/assets/images/logo.png")

    def test_find_nothing_by_logical_path(self):
        with self.assertRaises(FileNotFound):
            self.environment.find("js/views.js", logical=True)

    def test_save_file(self):
        source = "hello world"
        if sys.version_info >= (3, 0):
            source = bytes(source, "utf-8")
        with remove_static_dir():
            self.environment.save_file("js/script.js", source)
            with open(os.path.join(STATIC_DIR, "js", "script.js"), "rb") as f:
                self.assertEqual(f.read(), source)