Skip to content

Commit

Permalink
Changes now listed in project view. Project test improvements.
Browse files Browse the repository at this point in the history
  • Loading branch information
illume committed Feb 13, 2018
1 parent d4900ef commit cb4b401
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 16 deletions.
4 changes: 4 additions & 0 deletions pygameweb/project/models.py
Expand Up @@ -135,3 +135,7 @@ class Release(Base):
@property
def datetimeon_2882(self):
return formatdate(self.datetimeon.timestamp())

@property
def description_html(self):
return sanitize_html(self.description)
23 changes: 11 additions & 12 deletions pygameweb/project/views.py
Expand Up @@ -5,7 +5,7 @@

from flask import (Blueprint, render_template, abort,
redirect, url_for, request, current_app,
make_response, flash)
make_response)
from flask_sqlalchemy_session import current_session
from werkzeug.utils import secure_filename
from flask_security import current_user, login_required, roles_required
Expand Down Expand Up @@ -210,6 +210,7 @@ def all_tags():
</post>
"""


@project_blueprint.route('/project/<int:project_id>/comment',
methods=['GET', 'POST'])
@login_required
Expand Down Expand Up @@ -483,9 +484,11 @@ def recent_releases():
def atom():
""" of recent releases
"""
resp = render_template('project/atom.xml', recent_releases=recent_releases())
resp = render_template('project/atom.xml',
recent_releases=recent_releases())
response = make_response(resp)
response.headers['Content-Type'] = 'application/atom+xml; charset=utf-8; filename=news-ATOM'
content_type = 'application/atom+xml; charset=utf-8; filename=news-ATOM'
response.headers['Content-Type'] = content_type
return response


Expand All @@ -494,9 +497,12 @@ def rss():
""" of recent releases
"""
build_date = formatdate(datetime.datetime.now().timestamp())
resp = render_template('project/rss.xml', recent_releases=recent_releases(), build_date=build_date)
resp = render_template('project/rss.xml',
recent_releases=recent_releases(),
build_date=build_date)
response = make_response(resp)
response.headers['Content-Type'] = 'application/xml; charset=ISO-8859-1; filename=news-RSS2.0'
content_type = 'application/xml; charset=ISO-8859-1; filename=news-RSS2.0'
response.headers['Content-Type'] = content_type
return response


Expand All @@ -510,13 +516,6 @@ def legacy_feeds():
return ''









def add_project_blueprint(app):
""" to the app.
"""
Expand Down
11 changes: 9 additions & 2 deletions pygameweb/templates/project/view.html
Expand Up @@ -39,6 +39,15 @@ <h1>{{ project.title }}{% if release and release.version %} - {{ release.version
</div>
</div>

<h3>Changes</h3>
{% if release %}
<div class="row description">
<div class="col-md-12">
{{ release.description_html|safe }}
</div>
</div>
{% endif %}

<div class="row">
<div class="col-md-6">
{% set thumb_img = project.image_thumb(400,400) %}
Expand All @@ -53,8 +62,6 @@ <h1>{{ project.title }}{% if release and release.version %} - {{ release.version
</div>
</div>

<div class="row">
</div>

<h3>Links</h3>
<div>
Expand Down
10 changes: 8 additions & 2 deletions tests/functional/pygameweb/project/test_project_views.py
Expand Up @@ -130,7 +130,7 @@ def a_project(session, title, version, user):
)

release1 = Release(datetimeon=datetime.datetime(2017, 1, 5),
description='Description of some project 2.',
description='Description of some release 2.',
srcuri='http://example.com/source.tar.gz',
winuri='http://example.com/win.exe',
macuri='http://example.com/mac.dmg',
Expand Down Expand Up @@ -206,6 +206,7 @@ def test_project_index(project_client, session, user, project, project2):
assert resp.status_code == 200
assert b'<h1>Some project title 1' in resp.data
assert b'<h1>Some project title 2' not in resp.data
assert project.description.encode('utf8') in resp.data
assert b'game' in resp.data
assert b'arcade' in resp.data

Expand All @@ -217,6 +218,7 @@ def test_project_index(project_client, session, user, project, project2):
resp = project_client.get(url)
assert resp.status_code == 200
assert b'A release title.' in resp.data
assert b'Some release.' in resp.data

url = (f'/project-blabla+blasbla+-'
f'{project.id}-{project.releases[0].id}.html')
Expand Down Expand Up @@ -277,7 +279,8 @@ def test_project_new(project_client, session, user):
image = (BytesIO(png), 'helloworld.png')
data = dict(image=image, title='title', version='1.0.2',
tags='tags', summary='summary',
description='description', uri='http://example.com/')
description='description of project',
uri='http://example.com/')

with mock.patch('pygameweb.project.views.save_image') as save_image:
resp = project_client.post('/members/projects/new',
Expand All @@ -289,6 +292,8 @@ def test_project_new(project_client, session, user):
.first())
assert (save_image.call_args[0][1] ==
f'frontend/www/shots/{project.id}.png')
resp = project_client.get(f'/project/{project.id}/')
assert project.description.encode('utf8') in resp.data

assert resp.status_code == 200
assert project.title == 'title'
Expand Down Expand Up @@ -350,6 +355,7 @@ def test_project_new(project_client, session, user):

session.refresh(project)
session.refresh(project.releases[0])
assert data['description'] == project.releases[0].description
assert project.releases[0].version == '2.0.0', 'edited a release version'
assert len(project.releases) == 1

Expand Down

0 comments on commit cb4b401

Please sign in to comment.