diff options
| author | Alexis Métaireau <alexis@notmyidea.org> | 2018-01-07 21:44:33 +0100 |
|---|---|---|
| committer | Alexis Métaireau <alexis@notmyidea.org> | 2018-01-07 21:44:33 +0100 |
| commit | 59ff2dd6b237d13f49808ff42b61ca1812e9b911 (patch) | |
| tree | 4818c9cbe07d274f01b4d7e0389e11f169ace32f /ihatemoney | |
| parent | f1e2a2d84ceb13951c2547c6548eb823b60ce77e (diff) | |
| parent | 2019b398f164aa3f7edb8af439c92f1a32d2e920 (diff) | |
| download | ihatemoney-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-x | ihatemoney/manage.py | 8 | ||||
| -rw-r--r-- | ihatemoney/tests/tests.py | 27 |
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() |
