Add a ihatemoney delete-project command. (#375)

This commit is contained in:
Alexis Metaireau 2018-09-03 20:55:44 +02:00 committed by GitHub
parent 171dd81ed7
commit c34583d079
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 2 deletions

View file

@ -10,7 +10,7 @@ from flask_migrate import Migrate, MigrateCommand
from werkzeug.security import generate_password_hash from werkzeug.security import generate_password_hash
from ihatemoney.run import create_app from ihatemoney.run import create_app
from ihatemoney.models import db from ihatemoney.models import db, Project
from ihatemoney.utils import create_jinja_env from ihatemoney.utils import create_jinja_env
@ -57,6 +57,13 @@ class GenerateConfig(Command):
)) ))
class DeleteProject(Command):
def run(self, project_name):
demo_project = Project.query.get(project_name)
db.session.delete(demo_project)
db.session.commit()
def main(): def main():
QUIET_COMMANDS = ('generate_password_hash', 'generate-config') QUIET_COMMANDS = ('generate_password_hash', 'generate-config')
@ -76,6 +83,7 @@ def main():
manager.add_command('db', MigrateCommand) manager.add_command('db', MigrateCommand)
manager.add_command('generate_password_hash', GeneratePasswordHash) manager.add_command('generate_password_hash', GeneratePasswordHash)
manager.add_command('generate-config', GenerateConfig) manager.add_command('generate-config', GenerateConfig)
manager.add_command('delete-project', DeleteProject)
manager.run() manager.run()

View file

@ -20,7 +20,8 @@ from flask import session
from flask_testing import TestCase from flask_testing import TestCase
from ihatemoney.run import create_app, db, load_configuration from ihatemoney.run import create_app, db, load_configuration
from ihatemoney.manage import GenerateConfig, GeneratePasswordHash from ihatemoney.manage import (
GenerateConfig, GeneratePasswordHash, DeleteProject)
from ihatemoney import models from ihatemoney import models
from ihatemoney import utils from ihatemoney import utils
@ -1472,6 +1473,15 @@ class CommandTestCase(BaseTestCase):
print(stdout.getvalue()) print(stdout.getvalue())
self.assertEqual(len(stdout.getvalue().strip()), 187) self.assertEqual(len(stdout.getvalue().strip()), 187)
def test_demo_project_deletion(self):
self.create_project('demo')
self.assertEquals(models.Project.query.get('demo').name, 'demo')
cmd = DeleteProject()
cmd.run('demo')
self.assertEqual(len(models.Project.query.all()), 0)
if __name__ == "__main__": if __name__ == "__main__":
unittest.main() unittest.main()