Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ability to define and load HTML fixtures in the suite.json file #3

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 15 additions & 9 deletions django_qunit/templates/qunit/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,6 @@
<title>QUnit Test Suite</title>
<link rel="stylesheet" href="{% url qunit_css %}" type="text/css" media="screen">
<script type="text/javascript" src="{% url qunit_js %}"></script>
{% for url in suite.extra_urls %}
<script type="text/javascript" src="{{ url }}"></script>
{% endfor %}
{% for url in suite.extra_media_urls %}
<script type="text/javascript" src="{{ MEDIA_URL }}{{ url }}"></script>
{% endfor %}
{% for file in files %}
<script type="text/javascript" src="{% url qunit_test file %}"></script>
{% endfor %}
</head>
<body>
<h1 id="qunit-header">QUnit Test Suite ({{ suite.name|capfirst }})</h1>
Expand All @@ -31,5 +22,20 @@ <h2 id="qunit-banner"></h2>
{% endif %}
<h2 id="qunit-userAgent"></h2>
<ol id="qunit-tests"></ol>
<div id="qunit-fixture">
{% for html in suite.html_fixtures %}
{{ html|safe }}
{% endfor %}
</div>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess when in Rome, do as the romans do, not as your editor ;-) The indention should match the rest of the file.


{% for url in suite.extra_urls %}
<script type="text/javascript" src="{{ url }}"></script>
{% endfor %}
{% for url in suite.extra_media_urls %}
<script type="text/javascript" src="{{ MEDIA_URL }}{{ url }}"></script>
{% endfor %}
{% for file in files %}
<script type="text/javascript" src="{% url qunit_test file %}"></script>
{% endfor %}
</body>
</html>
30 changes: 23 additions & 7 deletions django_qunit/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ def get_suite_context(request, path):
suite['name'] = ''.join(pieces[-2])

# defaults
suite['html_fixtures'] = []
suite['extra_urls'] = []
suite['extra_media_urls'] = []

Expand All @@ -29,13 +30,28 @@ def get_suite_context(request, path):

previous_directory = parent_directory(path)

return {
'files': [path + file for file in files if file.endswith('js')],
'previous_directory': previous_directory,
'in_subdirectory': True and (previous_directory is not None) or False,
'subsuites': directories,
'suite': suite,
}
from django.template.loader import get_template
from django.template import Context

orig_template_dirs = settings.TEMPLATE_DIRS
settings.TEMPLATE_DIRS += (full_path,)
try:
base_context = {}
for i, template_name in enumerate(suite['html_fixtures']):
t = get_template(template_name)
context = Context(dict(base_context, template_name=template_name))
suite['html_fixtures'][i] = t.render(context)

return {
'files': [path + file for file in files if file.endswith('js')],
'previous_directory': previous_directory,
'in_subdirectory': True and (previous_directory is not None) or False,
'subsuites': directories,
'suite': suite,
}
finally:
settings.TEMPLATE_DIRS = orig_template_dirs

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In case your template foo fails, this doesn't return anything, but resets your template dirs?

Is not returning anything really what you want?


def run_tests(request, path):
suite_context = get_suite_context(request, path)
Expand Down
3 changes: 3 additions & 0 deletions example/qunit_tests/example_fixture.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<div id="example-stub">
<!-- just an example for inspiration -->
</div>
3 changes: 3 additions & 0 deletions example/qunit_tests/suite.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
{
"name": "Main Test Suite",
"html_fixtures": [
"example_fixture.html"
],
"extra_urls": [
"http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"
]
Expand Down