Ejemplo n.º 1
0
def test_get_column_tasks(column_id: int, status_code: int, field: str,
                          value: Union[str, dict], monkeypatch,
                          test_app: TestClient):

    MockColumnWithTasks = namedtuple('MockColumnWithTasks', ['tasks'])
    mock_column = MockColumnWithTasks(tasks=[
        models.Task(id=1,
                    task_description='UnitTest',
                    due_date=None,
                    column_idx=0,
                    column_id=1),
        models.Task(id=2,
                    task_description='SmokeTest',
                    due_date=None,
                    column_idx=1,
                    column_id=1)
    ])

    def mock_read(*args):
        if column_id == 0:
            return None
        return mock_column

    monkeypatch.setattr(crud, 'read', mock_read)
    response = test_app.get(f'/columns/{column_id}/tasks')
    assert response.status_code == status_code
    assert response.json()[field] == value
Ejemplo n.º 2
0
 def mock_read_all(*args):
     mock_task1 = models.Task(id=1,
                              task_description='UnitTest',
                              due_date=None,
                              column_idx=0,
                              column_id=1)
     mock_task2 = models.Task(id=2,
                              task_description='SmokeTest',
                              due_date=None,
                              column_idx=1,
                              column_id=1)
     return [mock_task1, mock_task2]
Ejemplo n.º 3
0
def test_task_list_returns_task_objects_without_date_first(
        session, user, get_response):
    task1 = models.Task(description="Task 1", user_id=user.id, due_date=None)
    session.add(task1)
    yesterday = date(2020, 5, 22)
    task2 = models.Task(description="Task 1",
                        user_id=user.id,
                        due_date=yesterday)
    session.add(task2)
    session.commit()

    response = get_response()
    assert response.status_code == 200
    assert response.json == [task1.serialize(), task2.serialize()]
Ejemplo n.º 4
0
def create_tasks():
    '''create some sample tasks'''
    #task1 = models.Task(title='Create App',
    #description='Create the main skeleton of the application, this iwll be a proof of concept prototype',
    #creator="patty",
    #creation_date=datetime.datetime.utcnow(),
    #owner="other person",
    #owned_date=datetime.datetime.utcnow(),
    #status=models.Status.query.filter_by(name='todo').first())

    #task2 = models.Task(title='Build HTML Templates',
    #description='Create the HTML Templates to be used in this application',
    #creator="patty",
    #creation_date=datetime.datetime.utcnow(),
    #owner=None,
    #owned_date=None,
    #status=models.Status.query.filter_by(name='doing').first())

    #task3 = models.Task(title='Consistently style application',
    #description='Create a onsistant style sheet for this application',
    #creator="patty",
    #creation_date=datetime.datetime.utcnow(),
    #owner="patty",
    #owned_date=datetime.datetime.utcnow(),
    #status=models.Status.query.filter_by(name='done').first())
    task4 = models.Task(
        title='Implement project scoping',
        description=
        'Implement and test project scoping, this is left out of a particular project scope and should therefore only appear in the global view',
        creator='derp',
        creation_date=datetime.datetime.utcnow(),
        status=models.Status.query.filter_by(name='todo').first())

    db.session.add(task4)
    db.session.commit()
Ejemplo n.º 5
0
def newTask():

    # Generate form.
    task_form = af.TaskForm()

    # Check entries are valid
    if task_form.validate_on_submit():

        user_id = current_user.id

        # Check if there is already a task
        newTask = am.Task(owner=user_id,
                          name=task_form.taskName.data,
                          state=False,
                          description=task_form.description.data,
                          deadline=task_form.deadline.data)

        db.session.add(newTask)
        db.session.commit()

        return redirect("/")

    return render_template("newTask.html",
                           form=task_form,
                           permission=am.Group.query.filter_by(
                               id=current_user.group).first().permission_level)
Ejemplo n.º 6
0
def test_update_task(task_id: int, task_description: str, status_code: int,
                     field: str, value: Union[str, dict], monkeypatch,
                     test_app: TestClient):

    mock_task = models.Task(id=1,
                            task_description='PreChange',
                            column_idx=0,
                            column_id=1)

    def mock_read(*args):
        if task_id == 0:
            return None
        return mock_task

    def mock_update(*args):
        mock_task.task_description = task_description
        return mock_task

    monkeypatch.setattr(crud, 'read', mock_read)
    monkeypatch.setattr(crud, 'update', mock_update)

    payload = {'task': {'task_description': task_description}}
    response = test_app.put(f'/tasks/{task_id}', json=payload)
    assert response.status_code == status_code
    assert response.json()[field] == value
Ejemplo n.º 7
0
def create_task(db: Session, task: schemas.TaskCreate):
    db_task = models.Task(taskname=task.taskname,
                          fullname=task.fullname,
                          organization=task.organization)
    db.add(db_task)
    db.commit()
    db.refresh(db_task)
    return db_task
Ejemplo n.º 8
0
def del_task_of(idMod):
    mod = models.Mods.query.filter_by(id=idMod).firts()
    task = models.Task().query.filter_by(id=request.json('id'))
    if mod is None: abort(500)
    if mod.id not in g.user.mods: abort(401)
    task.delete()
    db.session.delete(task)
    db.session.commit()
    return "OK", 200
Ejemplo n.º 9
0
def test_task_list_returns_task_objects_sorted_by_priority(
        session, user, get_response):
    today = date(2020, 5, 23)
    task1 = models.Task(description="Task 1",
                        user_id=user.id,
                        due_date=today,
                        priority=1)
    session.add(task1)
    yesterday = date(2020, 5, 22)
    task2 = models.Task(description="Task 1",
                        user_id=user.id,
                        due_date=yesterday,
                        priority=0)
    session.add(task2)
    session.commit()

    response = get_response("sort=priority")
    assert response.status_code == 200
    assert response.json == [task1.serialize(), task2.serialize()]
Ejemplo n.º 10
0
def task(session, user, **extra_create_kwargs):
    create_kwargs = {
        "user_id": user.id,
        "description": "Some task",
        "due_date": datetime.date(2020, 5, 21),
    }
    create_kwargs.update(extra_create_kwargs)
    obj = models.Task(**create_kwargs)
    session.add(obj)
    session.commit()
    return obj
Ejemplo n.º 11
0
def test_remove_task(get_db, add_users):
    task = copy.copy(data.tasks[0])
    task['user_id'] = get_user_id(task['username'])
    del task['username']
    db.session.add(models.Task(**task))
    db.session.commit()

    r1 = app.test_client().delete(
        '/rest/tasks/1', headers={'X-Api-Key': get_token(data.users[1])})

    assert r1.status_code == 204
    assert not app.test_client().get('/rest/tasks').json
Ejemplo n.º 12
0
def create_task():
    max_numb = get_last_task()
    print(max_numb)
    if request.method == "POST":
        create_time = str(datetime.now().time())
        start_time = calculate_time(max_numb + 1, create_time)
        execution_time = exec_time()
        task = models.Task(create_time=create_time, start_time=start_time, execution_time=execution_time)
        db.session.add(task)
        db.session.commit()
        max_numb += 1
    return render_template("add_task.html", number=max_numb)
Ejemplo n.º 13
0
def task_post():
    title = request.form['title'].strip()
    if not title or len(title) > models.Task.MAX_TITLE_LENGTH:
        abort(400)
    description = request.form['description'].strip()
    parent_id = request.form['parent'].strip()
    parent = models.Section.query.get(parent_id)
    if parent is None:
        abort(400)
    t = models.Task(title, description, None, 0, parent)
    db.session.add(t)
    db.session.commit()
    return redirect(url_for('section', sec_id=parent.id))
Ejemplo n.º 14
0
def addtestdata():
    """Add some test data to the database"""

    task1 = models.Task()
    task1.text = "Testtask1"
    task1.start_date = datetime.strptime("2017-09-01", "%Y-%m-%d")
    task1.duration = 5
    task1.progress = 0.8
    task1.sortorder = 20
    task1.parent = 0

    db.session.add(task1)
    db.session.commit()
Ejemplo n.º 15
0
def enqueue_task(data):
    task = models.Task(application=data['application'],
                       tag=data.get('tag', 'master'),
                       compiler=data['compiler'],
                       num_trials=data['num_trials'],
                       problem_size=data['size'],
                       status='Queued',
                       complete=False,
                       timestamp=datetime.datetime.now())
    db.session.add(task)
    db.session.commit()
    queue.put_nowait(task.id)
    return task.id
Ejemplo n.º 16
0
def test_task_list_suppress_tasks_from_other_users(session, user,
                                                   get_response):
    other_user = models.User(username="******", name="Bar")
    session.add(other_user)
    session.commit()

    task = models.Task(description="Task from other user",
                       user_id=other_user.id)
    session.add(task)
    session.commit()

    response = get_response()
    assert response.status_code == 200
    assert response.json == []
Ejemplo n.º 17
0
def add_task_to(idMod):
    mod = models.Mods.query.filter_by(id=idMod).first()
    task = models.Task()
    if mod is None: abort(500)
    if mod.id not in g.user.mods: abort(401)
    task.idMod = idMod
    task.hour = request.json['hour']
    task.minute = request.json['minute']
    task.wDay = request.json['wDay']
    task.newState = request.json['newState']
    task.save(mod)
    db.session.add(task)
    db.session.commit()
    return "OK", 200
Ejemplo n.º 18
0
def addTaskToDB():
	form = AddTaskForm()

	if form.validate_on_submit():
		dt = GetDateTime(request.form['date'], form.hour.data)

		if dt is None:
			return render_template("error.html")
		else:			
			t = models.Task(action=form.action.data, time=dt,hasRan=False)
			AddTask(t)
			return redirect("/index", code=302)
	else:
		return render_template("error.hmtl")
Ejemplo n.º 19
0
def create_task(title, created_by, description=None, status='new'):
    try:
        new_task = models.Task(
            title=title,
            created_by=created_by,
            description=description,
            status=status,
        )
        models.session.add(new_task)
        models.session.commit()
    except exc.IntegrityError as db_error:
        raise ValueError(f'User {created_by} not exist') from db_error
    else:
        return new_task
Ejemplo n.º 20
0
    def post(self):
        '''
        method to add a task
        '''
        args = self.reqparse.parse_args()

        category = models.Category.query.filter_by(id=args["category"]["id"]).first()
        tags = [models.Tag.query.filter_by(id=tag["id"]).first() for tag in args["tags"]]
        task = models.Task(args["name"], args["description"], category,
                           args["done"], tags, args["dimension"])

        db.session.add(task)
        db.session.commit()

        return {"task": marshal(task, TASK_FIELDS)}, 201
Ejemplo n.º 21
0
def add_json(section_json):
    sub_sections = []
    for s_s in section_json['sub-sections']:
        sub_sections.append(add_json(s_s))

    sec = models.Section(section_json['title'], section_json['description'],
                         None, sub_sections)
    # db.session.add(sec)

    for t in section_json['tasks']:
        description = t['description'] if 'description' in t else ''
        task = models.Task(t['title'], description, None, 0, sec)
        # db.session.add(task)

    return sec
Ejemplo n.º 22
0
 def mock_get_project_data(*args):
     return {
         'project_data': {
             'Column1': [
                 models.Task(id=1,
                             task_description='task1',
                             column_idx=0,
                             column_id=1,
                             due_date=None),
                 models.Task(id=2,
                             task_description='task2',
                             column_idx=1,
                             column_id=1,
                             due_date=None)
             ],
             'Column2': [
                 models.Task(id=3,
                             task_description='task3',
                             column_idx=0,
                             column_id=2,
                             due_date=None)
             ]
         }
     }
Ejemplo n.º 23
0
def index():
    add_dribbble_form = AddDribbbleTaskForm()
    tasks = session.query(models.Task).filter_by(is_liked_task=True).all()
    if add_dribbble_form.validate_on_submit():
        session.add(
            models.Task(url=add_dribbble_form.url.data,
                        counter=add_dribbble_form.amount_like.data,
                        is_liked_task=True))
        session.commit()
        flash('Your changes have been saved.')
        return redirect(url_for('index'))

    return render_template('index.html',
                           title='Deserto 0.2.0',
                           add_dribbble_form=add_dribbble_form,
                           tasks=tasks)
Ejemplo n.º 24
0
def admin():
    add_person_form = AddFakePersonsForm()
    tasks = session.query(models.Task).filter_by(is_dribbble_reg=True).all()
    if add_person_form.validate_on_submit():
        session.add(
            models.Task(counter=add_person_form.amount_persons.data,
                        is_dribbble_reg=True))
        session.commit()
        print(add_person_form.amount_persons.data)
        flash('Your changes have been saved.')
        return redirect(url_for('index'))
    return render_template(
        'admin.html',
        title='Deserto 0.2.0',
        add_person_form=add_person_form,
        tasks=tasks,
    )
Ejemplo n.º 25
0
def test_get_task(task_id: int, status_code: int, field: str, value: str,
                  monkeypatch, test_app: TestClient):

    mock_task = models.Task(id=1,
                            task_description='UnitTest',
                            due_date=None,
                            column_idx=0,
                            column_id=1)

    def mock_read(*args):
        if task_id == 0:  # task that does not exist
            return None
        return mock_task

    monkeypatch.setattr(crud, 'read', mock_read)
    response = test_app.get(f'/tasks/{task_id}')
    assert response.status_code == status_code
    assert response.json()[field] == value
Ejemplo n.º 26
0
 def setUp(self):
     super().setUp()
     user = models.User(username=faker.name(),
                        fullname=faker.name(),
                        password=faker.text(16),
                        is_active=True)
     models.session.add(user)
     models.session.flush()
     task = models.Task(title=faker.name(), created_by=user.username)
     models.session.add(task)
     models.session.commit()
     self.user = user
     self.task = task
     access_token = auth.generate_access_token(user.username)
     self.data = {
         'title': faker.text(20),
     }
     self.headers = {'Authorization': f'Bearer {access_token}'}
Ejemplo n.º 27
0
def test_delete_task(task_id: int, status_code: int, field: str,
                     value: Union[str,
                                  dict], monkeypatch, test_app: TestClient):

    mock_task = models.Task(id=1,
                            task_description='UnitTest',
                            column_idx=0,
                            column_id=1)

    def mock_read(*args):
        if task_id == 0:
            return None
        return mock_task

    def mock_delete(*args):
        return mock_task

    monkeypatch.setattr(crud, 'read', mock_read)
    monkeypatch.setattr(crud, 'delete', mock_delete)

    response = test_app.delete(f'/tasks/{task_id}')
    assert response.status_code == status_code
    assert response.json()[field] == value
Ejemplo n.º 28
0
def create_task(request, request_id):
    planning_request = models.PlanningRequest.objects.get(pk=request_id)

    if not (in_group(request.user, "psm")):
        return HttpResponse("You are not authorized to access this page",
                            status=401)

    task_form = models.TaskForm()
    if request.method == "POST":
        task_form = models.TaskForm(request.POST)
        if task_form.is_valid():
            task = models.Task(planning_request=planning_request,
                               **task_form.cleaned_data)
            task.save()
            task_form = models.TaskForm()

    planning_request = models.PlanningRequest.objects.get(pk=request_id)
    planning_request = model_to_dict(planning_request)
    planning_request.tasks_dicts = models_to_dicts(
        planning_request.tasks.all())
    return render(request, "tasks.html", {
        "planning_request": planning_request,
        "form": task_form
    })
Ejemplo n.º 29
0
 def mock_create(*args):
     return models.Task(id=1,
                        task_description='UnitTest',
                        column_idx=0,
                        column_id=1)
Ejemplo n.º 30
0
def create_default_data():
	hpassword = bcrypt.hashpw(bytes("123", 'utf-8'), bcrypt.gensalt())
	db = SessionLocal()
	objects = [
	    models.User(username="******", fullname="Archibald Weng", password=hpassword),
	    models.User(username="******", fullname="Boris Tien", password=hpassword),
	    models.User(username="******", fullname="Larry Chuang", password=hpassword),
	    models.User(username="******", fullname="Thomas Lin", password=hpassword),
	    models.User(username="******", fullname="Dora Yen", password=hpassword),
	    models.User(username="******", fullname="Wimy Kuo", password=hpassword),
	    models.User(username="******", fullname="Kathy Wu", password=hpassword),
	    
	    models.Task(taskname="TIIP", fullname="TIIP-全方位減碳系統服務平台開發計畫", organization="永智"),
	    models.Task(taskname="108高雄溫管", fullname="108年高雄市溫室氣體管理計畫", organization="臺中市政府環境保護局"),
	    models.Task(taskname="108台中溫減", fullname="108年台中市溫室氣體減量計畫", organization="臺中市政府環境保護局"),
	    models.Task(taskname="109台中溫減", fullname="109年台中市溫室氣體減量計畫", organization="臺中市政府環境保護局"),
	    models.Task(taskname="台電-風力", fullname="台灣電力公司風力發電計畫(一)抵換專案", organization="台灣電力股份有限公司環境保護處"),
	    models.Task(taskname="台電-太陽光電", fullname="台灣電力公司台中及興達太陽光電計畫", organization="台灣電力股份有限公司環境保護處"),
	    models.Task(taskname="108台電-碳限制計畫", fullname="台電公司碳限制管理及對策研析計畫", organization="台灣電力股份有限公司環境保護處"),
	    models.Task(taskname="尚承-盤查", fullname="尚承鋼鐵股份有限公司108年度溫室氣體盤查", organization="尚承鋼鐵股份有限公司"),
	    models.Task(taskname="尚承-抵換", fullname="尚承鋼鐵加熱爐能源效率提升及天然氣替代重油溫室氣體減量抵換專案", organization="尚承鋼鐵股份有限公司"),
	    models.Task(taskname="109低碳辦", fullname="109年臺中市低碳城市推動計畫", organization="臺中市政府環境保護局"),
	    models.Task(taskname="106CORSIA", fullname="推動我國國際航空業碳抵換及減量計畫第一期計畫", organization="交通部民用航空局"),
	    models.Task(taskname="109CORSIA", fullname="推動我國國際航空業碳抵換及減量計畫第二期計畫", organization="交通部民用航空局"),

	    models.Task(taskname="瑞振工業-盤查及SBTi專案", fullname="瑞振工業溫室氣體管理專案", organization="瑞振工業公司"),
	    models.Task(taskname="108台電-碳限制計畫", fullname="台電公司碳限制管理及對策研析計畫", organization="台灣電力股份有限公司環境保護處"),

	]
	db.bulk_save_objects(objects)
	db.commit()
	db.close()