示例#1
0
def test_delete_project_task_bad(resource):
    """
    Should not be able to delete a task if it does not belong to the project
    """
    user_id = resource
    proj = ProjectRepo.add_project(description="ProjectA",
                                   user=user_id,
                                   tasks=[])
    task = TaskRepo.add_task(description="Task1", user=user_id)
    assert ProjectRepo.delete_project_task(proj["id"], task["id"],
                                           user_id) == False
示例#2
0
def test_store_project(resource):
    user_id = resource
    TaskRepo.add_task(description="Task1", user=user_id)
    TaskRepo.add_task(description="Task2", user=user_id)
    tasks = list(map(lambda t: t["id"], TaskRepo.get_all_tasks()))
    ProjectRepo.add_project(description="ProjectA", tasks=tasks, user=user_id)
    projects = ProjectRepo.get_all_projects()
    assert len(projects) == 1
    assert projects[0]["description"] == "ProjectA"
    assert len(projects[0]["tasks"]) == 2
    assert projects[0]["tasks"][0]["id"] in tasks
    assert projects[0]["tasks"][1]["id"] in tasks
示例#3
0
def test_store_project_task(resource):
    user_id = resource
    added_proj_one = ProjectRepo.add_project(description="ProjectA",
                                             user=user_id,
                                             tasks=[])
    assert len(added_proj_one["tasks"]) == 0
    added_subtask = ProjectRepo.add_project_task(added_proj_one["id"],
                                                 "ProjectASubtask", user_id)
    added_proj_two = ProjectRepo.get_all_projects()[0]
    assert len(added_proj_two["tasks"]) == 1
    assert added_proj_one["id"] == added_proj_two["id"]
    assert added_subtask["id"] in map(lambda t: t["id"],
                                      added_proj_two["tasks"])
示例#4
0
def test_delete_project_task_good(resource):
    """
    Successfully delete a subtask for a given project.
    """
    user_id = resource
    proj = ProjectRepo.add_project(description="ProjectA",
                                   user=user_id,
                                   tasks=[])
    subtask = ProjectRepo.add_project_task(proj["id"], "ProjectASubtask",
                                           user_id)
    assert ProjectRepo.delete_project_task(proj["id"], subtask["id"],
                                           user_id) == True
    proj = ProjectRepo.get_all_projects()[0]
    assert len(proj["tasks"]) == 0
示例#5
0
def project_get():
    uid = current_user.get_obj_id()
    user_projects = ProjectRepo.get_all_projects(user=uid)
    res = {}
    if user_projects:
        res["success"] = True
        res["data"] = user_projects
    else:
        res["success"] = False
        res["data"] = {}
    return json.dumps(res)
示例#6
0
def project_add():
    uid = current_user.get_obj_id()
    payload = request.get_json()
    if "description" not in payload:
        res = {"success": False}
    else:
        res = {}
        added_project = ProjectRepo.add_project(payload["description"], uid)
        if added_project:
            res["success"] = True
            res["data"] = added_project
        else:
            res["success"] = False
        return json.dumps(res)
示例#7
0
def project_delete(project_id):
    delete_res = ProjectRepo.delete_project(project_id)
    return json.dumps({"success": delete_res})
示例#8
0
def project_task_delete(project_id, task_id):
    uid = current_user.get_id()
    res = ProjectRepo.delete_project_task(project_id, task_id, uid)
    return json.dumps({"success": res})
示例#9
0
from flask_login import LoginManager
from GTDApp.repo import ItemRepo, TaskRepo, UserRepo, ProjectRepo


# Initialize the app
app = Flask(__name__)
app.secret_key = "myspookysecret"  # TODO: Make this configurable

if os.environ.get("CONFIG_TYPE") == "test":
    app.config.from_pyfile(os.path.join(os.path.dirname(__file__), "..", "./config/config.cfg.test"))
else:
    app.config.from_pyfile(os.path.join(os.path.dirname(__file__), "..", "./config/config.cfg.default"))


# Initialize the login manager for the app
login_manager = LoginManager()
login_manager.init_app(app)


# Connect to the database
ItemRepo.connect(app.config["DBNAME"])
TaskRepo.connect(app.config["DBNAME"])
UserRepo.connect(app.config["DBNAME"])
ProjectRepo.connect(app.config["DBNAME"])


from GTDApp.views import index
from GTDApp.views import item
from GTDApp.views import task
from GTDApp.views import project