Пример #1
0
def offline_context():
    """
    offline context for compress management command, offline_context function iterates
    through all applied themes and returns a separate context for each theme.
    """
    main_css_path = "css/base/main.css"

    for theme in get_themes():
        main_css = ThemeStorage(prefix=theme.theme_dir_name).url(main_css_path)

        yield {
            'main_css': main_css,
        }

    yield {
        'main_css': ThemeStorage().url(main_css_path),
    }
Пример #2
0
def offline_context():
    """
    offline context for compress management command, offline_context function iterates
    through all applied themes and returns a separate context for each theme.
    """

    for theme in get_themes():
        main_css = ThemeStorage(
            prefix=theme.theme_dir).url("css/base/main.css")
        swagger_css = ThemeStorage(
            prefix=theme.theme_dir).url("css/base/edx-swagger.css")

        yield {
            'main_css': main_css,
            'swagger_css': swagger_css,
        }

    yield {
        'main_css': ThemeStorage().url("css/base/main.css"),
        'swagger_css': ThemeStorage().url("css/base/edx-swagger.css"),
    }
Пример #3
0
 def setUp(self):
     super(TestThemeStorage, self).setUp()
     self.themes_dir = settings.COMPREHENSIVE_THEME_DIRS[0]
     self.enabled_theme = "test-theme"
     self.storage = ThemeStorage(location=self.themes_dir / self.enabled_theme / 'static')
Пример #4
0
class TestThemeStorage(TestCase):
    """
    Test comprehensive theming static files storage.
    """

    def setUp(self):
        super(TestThemeStorage, self).setUp()
        self.themes_dir = settings.COMPREHENSIVE_THEME_DIRS[0]
        self.enabled_theme = "test-theme"
        self.storage = ThemeStorage(location=self.themes_dir / self.enabled_theme / 'static')

    def test_themed_asset(self):
        """
        Verify storage returns True on themed assets
        """
        asset = "images/default-logo.png"
        self.assertTrue(self.storage.themed(asset, self.enabled_theme))

    @override_settings(DEBUG=True)
    def test_non_themed_asset(self):
        """
        Verify storage returns False on assets that are not themed
        """
        asset = "images/cap.png"
        self.assertFalse(self.storage.themed(asset, self.enabled_theme))

    def test_themed_with_theming_disabled(self):
        """
        Verify storage returns False when theming is disabled even if given asset is themed
        """
        asset = "images/default-logo.png"
        with override_settings(ENABLE_COMPREHENSIVE_THEMING=False):
            self.assertFalse(self.storage.themed(asset, self.enabled_theme))

    def test_themed_missing_theme_name(self):
        """
        Verify storage.themed returns False when theme name is empty or None.
        """
        asset = "images/default-logo.png"
        self.assertFalse(self.storage.themed(asset, ""))
        self.assertFalse(self.storage.themed(asset, None))

    def test_url(self):
        """
        Verify storage returns correct url depending upon the enabled theme
        """
        asset = "images/default-logo.png"
        with patch(
            "ecommerce.theming.storage.get_current_theme",
            return_value=Theme(self.enabled_theme, self.enabled_theme, get_theme_base_dir(self.enabled_theme)),
        ):
            asset_url = self.storage.url(asset)
            # remove hash key from file url
            expected_url = self.storage.base_url + self.enabled_theme + "/" + asset

            self.assertEqual(asset_url, expected_url)

    def test_path(self):
        """
        Verify storage returns correct file path depending upon the enabled theme
        """
        asset = "images/default-logo.png"
        with patch(
            "ecommerce.theming.storage.get_current_theme",
            return_value=Theme(self.enabled_theme, self.enabled_theme, get_theme_base_dir(self.enabled_theme)),
        ):
            returned_path = self.storage.path(asset)
            expected_path = self.themes_dir / self.enabled_theme / "static" / asset

            self.assertEqual(expected_path, returned_path)