aboutsummaryrefslogtreecommitdiff
path: root/ihatemoney
diff options
context:
space:
mode:
authorJocelynDelalande <JocelynDelalande@users.noreply.github.com>2018-01-07 23:01:34 +0100
committerGitHub <noreply@github.com>2018-01-07 23:01:34 +0100
commit34a21616506402c764d481cc7a28e2b9818518f9 (patch)
treeb7b3079157c9c12976c0df7f329a341e843629b2 /ihatemoney
parent4ab8863eb20ea75fc0b3990471a01f4874735f3c (diff)
parentc24ee6f1c4e1c1090f0833f65b795512fc03de30 (diff)
downloadihatemoney-mirror-34a21616506402c764d481cc7a28e2b9818518f9.zip
ihatemoney-mirror-34a21616506402c764d481cc7a28e2b9818518f9.tar.gz
ihatemoney-mirror-34a21616506402c764d481cc7a28e2b9818518f9.tar.bz2
Merge pull request #308 from spiral-project/almet/fix-template-inclusion-packaging
Include all .j2 files in the packaged version.
Diffstat (limited to 'ihatemoney')
-rwxr-xr-xihatemoney/manage.py8
-rw-r--r--ihatemoney/templates/invitation_mail.en.j2 (renamed from ihatemoney/templates/invitation_mail.en)4
-rw-r--r--ihatemoney/templates/invitation_mail.fr.j2 (renamed from ihatemoney/templates/invitation_mail.fr)6
-rw-r--r--ihatemoney/templates/password_reminder.en.j2 (renamed from ihatemoney/templates/password_reminder.en)4
-rw-r--r--ihatemoney/templates/password_reminder.fr.j2 (renamed from ihatemoney/templates/password_reminder.fr)0
-rw-r--r--ihatemoney/templates/reminder_mail.en.j2 (renamed from ihatemoney/templates/reminder_mail.en)0
-rw-r--r--ihatemoney/templates/reminder_mail.fr.j2 (renamed from ihatemoney/templates/reminder_mail.fr)0
-rw-r--r--ihatemoney/tests/tests.py27
-rw-r--r--ihatemoney/web.py6
9 files changed, 41 insertions, 14 deletions
diff --git a/ihatemoney/manage.py b/ihatemoney/manage.py
index 797e6c4..315cfac 100755
--- a/ihatemoney/manage.py
+++ b/ihatemoney/manage.py
@@ -4,7 +4,7 @@ import os
import pkgutil
import random
import sys
-from getpass import getpass
+import getpass
from flask_script import Manager, Command, Option
from flask_migrate import Migrate, MigrateCommand
@@ -20,11 +20,11 @@ class GeneratePasswordHash(Command):
"""Get password from user and hash it without printing it in clear text."""
def run(self):
- password = getpass(prompt='Password: ')
+ password = getpass.getpass(prompt='Password: ')
print(generate_password_hash(password))
-class ConfigTemplate(Command):
+class GenerateConfig(Command):
def get_options(self):
return [
Option('config_file', choices=[
@@ -74,7 +74,7 @@ def main():
manager = Manager(app)
manager.add_command('db', MigrateCommand)
manager.add_command('generate_password_hash', GeneratePasswordHash)
- manager.add_command('generate-config', ConfigTemplate)
+ manager.add_command('generate-config', GenerateConfig)
manager.run()
diff --git a/ihatemoney/templates/invitation_mail.en b/ihatemoney/templates/invitation_mail.en.j2
index eeaafdb..42be0d2 100644
--- a/ihatemoney/templates/invitation_mail.en
+++ b/ihatemoney/templates/invitation_mail.en.j2
@@ -2,10 +2,10 @@ Hi,
Someone using the email address {{ g.project.contact_email }} invited you to share your expenses for "{{ g.project.name }}".
-It's as simple as saying what did you paid for, for who, and how much did it cost you, we are caring about the rest.
+It's as simple as saying what did you pay for, for whom, and how much did it cost you, we are caring about the rest.
You can log in using this link: {{ url_for(".authenticate", _external=True, token=g.project.generate_token()) }}.
-Once logged in you can use the following link which is easier to remember: {{ url_for(".list_bills", _external=True) }}
+Once logged-in, you can use the following link which is easier to remember: {{ url_for(".list_bills", _external=True) }}
If your cookie gets deleted or if you log out, you will need to log back in using the first link.
Enjoy,
diff --git a/ihatemoney/templates/invitation_mail.fr b/ihatemoney/templates/invitation_mail.fr.j2
index a95f9e9..197edcc 100644
--- a/ihatemoney/templates/invitation_mail.fr
+++ b/ihatemoney/templates/invitation_mail.fr.j2
@@ -1,11 +1,11 @@
Salut,
-Quelqu'un avec l'addresse email "{{ g.project.contact_email }}" vous à invité à partager vos dépenses pour "{{ g.project.name }}".
+Quelqu'un avec l'adresse "{{ g.project.contact_email }}" vous à invité à partager vos dépenses pour "{{ g.project.name }}".
-C'est aussi simple que de dire qui à payé pour quoi, pour qui, et combien celà à coûté, on s'occuppe du reste.
+C'est aussi simple que de dire qui à payé pour quoi, pour qui, et combien celà à coûté, on s’occupe du reste.
Vous pouvez vous authentifier avec le lien suivant: {{ url_for(".authenticate", _external=True, token=g.project.generate_token()) }}.
Une fois authentifié, vous pouvez utiliser le lien suivant qui est plus facile à mémoriser: {{ url_for(".list_bills", _external=True) }}
-Si votre cookie est supprimé ou si vous vous déconnectez, voous devrez vous réauthentifier en utilisant le premier lien.
+Si votre cookie est supprimé ou si vous vous déconnectez, vous devrez vous authentifier à nouveau en utilisant le premier lien.
Have fun,
diff --git a/ihatemoney/templates/password_reminder.en b/ihatemoney/templates/password_reminder.en.j2
index bc7e609..c654354 100644
--- a/ihatemoney/templates/password_reminder.en
+++ b/ihatemoney/templates/password_reminder.en.j2
@@ -1,8 +1,8 @@
Hi,
-You requested to reset the password of the following project: "{{ project.name }}".
+You requested to reset the password of the following project: "{{ project.name }}".
You can reset it here: {{ url_for(".reset_password", _external=True, token=project.generate_token(expiration=3600)) }}.
-This link is only valid for 1 hour.
+This link is only valid for one hour.
Hope this helps,
Some weird guys (with beards)
diff --git a/ihatemoney/templates/password_reminder.fr b/ihatemoney/templates/password_reminder.fr.j2
index d4fbc2d..d4fbc2d 100644
--- a/ihatemoney/templates/password_reminder.fr
+++ b/ihatemoney/templates/password_reminder.fr.j2
diff --git a/ihatemoney/templates/reminder_mail.en b/ihatemoney/templates/reminder_mail.en.j2
index 8784d2a..8784d2a 100644
--- a/ihatemoney/templates/reminder_mail.en
+++ b/ihatemoney/templates/reminder_mail.en.j2
diff --git a/ihatemoney/templates/reminder_mail.fr b/ihatemoney/templates/reminder_mail.fr.j2
index e73938a..e73938a 100644
--- a/ihatemoney/templates/reminder_mail.fr
+++ b/ihatemoney/templates/reminder_mail.fr.j2
diff --git a/ihatemoney/tests/tests.py b/ihatemoney/tests/tests.py
index de53c58..d4b6d7a 100644
--- a/ihatemoney/tests/tests.py
+++ b/ihatemoney/tests/tests.py
@@ -4,6 +4,10 @@ try:
import unittest2 as unittest
except ImportError:
import unittest # NOQA
+try:
+ from unittest.mock import patch
+except ImportError:
+ from mock import patch
import os
import json
@@ -16,6 +20,7 @@ from flask import session
from flask_testing import TestCase
from ihatemoney.run import create_app, db, load_configuration
+from ihatemoney.manage import GenerateConfig, GeneratePasswordHash
from ihatemoney import models
from ihatemoney import utils
@@ -1406,5 +1411,27 @@ class ServerTestCase(IhatemoneyTestCase):
self.assertStatus(200, req)
+class CommandTestCase(BaseTestCase):
+ def test_generate_config(self):
+ """ Simply checks that all config file generation
+ - raise no exception
+ - produce something non-empty
+ """
+ cmd = GenerateConfig()
+ for config_file in cmd.get_options()[0].kwargs['choices']:
+ with patch('sys.stdout', new=six.StringIO()) as stdout:
+ cmd.run(config_file)
+ print(stdout.getvalue())
+ self.assertNotEqual(len(stdout.getvalue().strip()), 0)
+
+ def test_generate_password_hash(self):
+ cmd = GeneratePasswordHash()
+ with patch('sys.stdout', new=six.StringIO()) as stdout, \
+ patch('getpass.getpass', new=lambda prompt: 'secret'): # NOQA
+ cmd.run()
+ print(stdout.getvalue())
+ self.assertEqual(len(stdout.getvalue().strip()), 187)
+
+
if __name__ == "__main__":
unittest.main()
diff --git a/ihatemoney/web.py b/ihatemoney/web.py
index e6df385..6b1b358 100644
--- a/ihatemoney/web.py
+++ b/ihatemoney/web.py
@@ -242,7 +242,7 @@ def create_project():
message_title = _("You have just created '%(project)s' "
"to share your expenses", project=g.project.name)
- message_body = render_template("reminder_mail.%s" %
+ message_body = render_template("reminder_mail.%s.j2" %
get_locale().language)
msg = Message(message_title,
@@ -273,7 +273,7 @@ def remind_password():
project = Project.query.get(form.id.data)
# send a link to reset the password
- password_reminder = "password_reminder.%s" % get_locale().language
+ password_reminder = "password_reminder.%s.j2" % get_locale().language
current_app.mail.send(Message(
"password recovery",
body=render_template(password_reminder, project=project),
@@ -395,7 +395,7 @@ def invite():
if form.validate():
# send the email
- message_body = render_template("invitation_mail.%s" %
+ message_body = render_template("invitation_mail.%s.j2" %
get_locale().language)
message_title = _("You have been invited to share your "