def test_loader_not_subclass(self): class Foo: pass APP_SETTINGS.update({'loader': Foo}) with self.assertRaises(CustomManifestLoaderNotValid): render_template('{% load manifest %}' '{% manifest "main.js" %}') APP_SETTINGS.update({'loader': DefaultLoader})
def test_match_urls(self): APP_SETTINGS.update({'manifest_file': 'url_manifest.json'}) rendered = render_template( '{% load manifest %}' '{% manifest_match "*.js" "<script src=\"{match}\" />" %}') self.assertEqual( rendered, '<script src="http://localhost:8080/main.js" />\n' '<script src="https://localhost:8080/chunk1.hash.js" />\n' '<script src="/static/chunk2.hash.js" />\n' '<script src="http://localhost:8080/chunk3.hash.js" />') APP_SETTINGS.update({'manifest_file': 'manifest.json'})
def test_cache_set(self): APP_SETTINGS.update({'cache': True}) self.assertIsNone(cache.get('webpack_manifest')) manifest = _get_manifest() self.assertDictEqual( manifest, { 'main.js': 'main.e12dfe2f9b185dea03a4.js', "chunk1.js": "chunk1.hash.js", "chunk2.js": "chunk2.hash.js", "chunk3.js": "chunk3.hash.js", "styles.css": "styles.hash.css" }, ) self.assertDictEqual(manifest, cache.get('webpack_manifest')) APP_SETTINGS.update({'cache': False}) cache.delete('webpack_manifest')
def test_custom_output_dir(self): APP_SETTINGS.update({'output_dir': settings.BASE_DIR / 'foo'}) with self.assertRaises(WebpackManifestNotFound): _get_manifest() APP_SETTINGS.update({'output_dir': None})
def test_cached_manifest(self): cache.set('webpack_manifest', {'foo': 'bar'}) APP_SETTINGS.update({'cache': True}) self.assertDictEqual({'foo': 'bar'}, _get_manifest()) cache.delete('webpack_manifest') APP_SETTINGS.update({'cache': False})
def test_renders_correctly(self): APP_SETTINGS.update({'manifest_file': 'manifest.json'}) rendered = render_template( '{% load manifest %}' '{% manifest_match "*.css" "<foo {match} bar>" %}') self.assertEqual(rendered, '<foo /static/styles.hash.css bar>')
def test_url_in_manifest(self): APP_SETTINGS.update({'manifest_file': 'url_manifest.json'}) rendered = render_template('{% load manifest %}' '{% manifest "main.js" %}') self.assertEqual(rendered, 'http://localhost:8080/main.js') APP_SETTINGS.update({'manifest_file': 'manifest.json'})
def test_non_default_static_url(self): APP_SETTINGS.update({'manifest_file': 'manifest.json'}) with self.settings(STATIC_URL='/foo/'): rendered = render_template('{% load manifest %}' '{% manifest "main.js" %}') self.assertEqual(rendered, '/foo/main.e12dfe2f9b185dea03a4.js')
def test_with_var_no_string(self): APP_SETTINGS.update({'manifest_file': 'manifest.json'}) rendered = render_template('{% load manifest %}' '{% manifest foo %}', {'foo': 'main.js'}) self.assertEqual(rendered, '/static/main.e12dfe2f9b185dea03a4.js')
def test_basic_usage(self): APP_SETTINGS.update({'manifest_file': 'manifest.json'}) rendered = render_template('{% load manifest %}' '{% manifest "main.js" %}') self.assertEqual(rendered, '/static/main.e12dfe2f9b185dea03a4.js')