mirror of
https://github.com/spiral-project/ihatemoney.git
synced 2025-04-29 09:52:36 +02:00
Add a ihatemoney delete-project command. (#375)
This commit is contained in:
parent
171dd81ed7
commit
c34583d079
2 changed files with 20 additions and 2 deletions
|
@ -10,7 +10,7 @@ from flask_migrate import Migrate, MigrateCommand
|
|||
from werkzeug.security import generate_password_hash
|
||||
|
||||
from ihatemoney.run import create_app
|
||||
from ihatemoney.models import db
|
||||
from ihatemoney.models import db, Project
|
||||
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():
|
||||
QUIET_COMMANDS = ('generate_password_hash', 'generate-config')
|
||||
|
||||
|
@ -76,6 +83,7 @@ def main():
|
|||
manager.add_command('db', MigrateCommand)
|
||||
manager.add_command('generate_password_hash', GeneratePasswordHash)
|
||||
manager.add_command('generate-config', GenerateConfig)
|
||||
manager.add_command('delete-project', DeleteProject)
|
||||
manager.run()
|
||||
|
||||
|
||||
|
|
|
@ -20,7 +20,8 @@ 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.manage import (
|
||||
GenerateConfig, GeneratePasswordHash, DeleteProject)
|
||||
from ihatemoney import models
|
||||
from ihatemoney import utils
|
||||
|
||||
|
@ -1472,6 +1473,15 @@ class CommandTestCase(BaseTestCase):
|
|||
print(stdout.getvalue())
|
||||
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__":
|
||||
unittest.main()
|
||||
|
|
Loading…
Reference in a new issue