aboutsummaryrefslogtreecommitdiff
path: root/ihatemoney
diff options
context:
space:
mode:
authorAlexis Métaireau <alexis@notmyidea.org>2018-01-07 21:44:33 +0100
committerAlexis Métaireau <alexis@notmyidea.org>2018-01-07 21:44:33 +0100
commit59ff2dd6b237d13f49808ff42b61ca1812e9b911 (patch)
tree4818c9cbe07d274f01b4d7e0389e11f169ace32f /ihatemoney
parentf1e2a2d84ceb13951c2547c6548eb823b60ce77e (diff)
parent2019b398f164aa3f7edb8af439c92f1a32d2e920 (diff)
downloadihatemoney-mirror-59ff2dd6b237d13f49808ff42b61ca1812e9b911.zip
ihatemoney-mirror-59ff2dd6b237d13f49808ff42b61ca1812e9b911.tar.gz
ihatemoney-mirror-59ff2dd6b237d13f49808ff42b61ca1812e9b911.tar.bz2
Merge branch 'almet/fix-template-inclusion-packaging' of github.com:spiral-project/ihatemoney into almet/fix-template-inclusion-packaging
Diffstat (limited to 'ihatemoney')
-rwxr-xr-xihatemoney/manage.py8
-rw-r--r--ihatemoney/tests/tests.py27
2 files changed, 31 insertions, 4 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/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()