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 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()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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()
|
||||||
|
|
Loading…
Reference in a new issue