Пример #1
0
def project_delete(project_id):
    try:
        pass
        # project = Project.get(id=project_id, user=current_user.id)
    except Project.DoesNotExist:
        return jsonify({
            "message":
            "Can't find project with id - `{id}`".format(id=project_id),
            "status":
            "error"
        }), 404

    task_relation_count = Task.select().join(Project).where(
        Project.id == project_id).count()

    if task_relation_count > 0:
        return jsonify({
            "message":
            "Deletion is not possible. The project is connected with tasks",
            "status": "error"
        }), 403

    Project.delete().where(Project.id == project_id).execute()

    # return jsonify({"message": "The project has been successfully deleted", "status": "success"}), 201
    return jsonify({"id": project_id}), 201
Пример #2
0
class S3CustomStorageTestCase(TestCase):

    def setUp(self):
        self.project = Project()

    def test_group_user(self):
        response = self.client.get('/api/group/%d/user/%d' % (self.group.id, self.user.id))
        # print(response)
        # pprint(response.__dict__)
        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(response._container), 1)


    def tearDown(self):
        self.project.delete()
        self.browser.quit()
Пример #3
0
def add_project(data):
    """
    Adds a project to database and returns a  project instance

    :param data:  Project information
    :type data: A dictionary

    :rtype: an instance of :class:`models.Project`

    """
    if 'project' not in data:
        return None
    if 'company' not in data:
        return None
    project_data = data['project']
    company_data = data['company']
    if ('name' not in project_data) or ('name' not in company_data):
        return None
    project_name = project_data['name']
    exists = Project.get('exists', Project.name == project_name)
    if exists:
        raise ItemAlreadyExistsException('The project exists already!')
    company = Company.get('one', Company.name == company_data['name'])
    # Parse data.
    name = project_data['name']
    directory = ''
    directory_set = False
    if 'dir' in project_data:
        directory = project_data['dir']
        directory_set = True
    password = ''
    if 'password' in project_data:
        password = project_data['password']
        if password:
            password = utils.hash_password(password)
            directory = utils.get_encrypted_directory_name(name, password)
            directory_set = True
    project = Project(name, '', company, password)
    if directory_set:
        project.dir = filesystem.create_project_directory(directory)
    else:
        project.dir = filesystem.create_project_directory(str(project.id))
    if not project.dir:
        project.delete()
        return None
    Project.update(project)
    return project
Пример #4
0
 def test_create_project(self):
     """Make sure it creates a project."""
     create_project(project_id='001', project_description='This could be the same.')
     p = Project.select().where(Project.project_id == '001')
     q = Project.delete().where(Project.project_id == '001')
     q.execute()
     self.assertEqual(str(p), ("<class 'models.Project'> SELECT `t1`.`id`,"
                               " `t1`.`project_id`, `t1`.`project_description` "
                               "FROM `project` AS t1 WHERE (`t1`.`project_id` = %s) "
                               "['001']"))
Пример #5
0
    def test_create_project_no_duplicate(self):
        """Make sure you can't create projects with duplicate IDs."""
        Project.create(project_id='001', project_description='Testing purpose.')

        from peewee import IntegrityError
        with self.assertRaises(IntegrityError):
            Project.create(project_id='001', project_description='This could be the same.')

        # Delete the instance created
        q = Project.delete().where(Project.project_id == '001')
        q.execute()