def save_fileinfo_to_db(username, file_id, content_type, file_length): """Save info about file into DB """ user = User.get(User.username == username) File.create(filename=file_id, type=content_type, user=user, length=file_length)
def test__model__file__create(self): actual_result = File.create("my-device", "foo.bar", "super", "baz", False) self.assertEqual("my-device", actual_result.device) self.assertEqual("foo.bar", actual_result.filename) self.assertEqual("baz", actual_result.parent_dir_uuid) self.assertEqual(False, actual_result.is_directory) self.assertRegex(actual_result.uuid, r"[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}") mock.wrapper.session.add.assert_called_with(actual_result) mock.wrapper.session.commit.assert_called_with()
def create_file(data: dict, user: str, device: Device) -> dict: """ Create a new file. :param data: The given data. :param user: The user uuid. :param device: The device of the file. :return: The response """ filename: str = data["filename"] content: str = data["content"] is_directory: bool = data["is_directory"] parent_dir_uuid: str = data["parent_dir_uuid"] file_count: int = (wrapper.session.query(func.count( File.uuid)).filter_by(device=device.uuid, filename=filename, parent_dir_uuid=parent_dir_uuid).scalar()) if file_count > 0: return file_already_exists parent_dir: File = (wrapper.session.query(File).filter_by( device=device.uuid, uuid=parent_dir_uuid, is_directory=True).first()) if not parent_dir and parent_dir_uuid is not None: return parent_directory_not_found if is_directory and content != "": return directory_can_not_have_textcontent file: File = File.create(device.uuid, filename, content, parent_dir_uuid, is_directory) m.contact_user( user, { "notify-id": "file-update", "origin": "create", "device_uuid": device.uuid, "data": { "created": [file.uuid], "deleted": [], "changed": [] }, }, ) return file.serialize
def create(data: dict, user: str) -> dict: """ Create a new file. :param data: The given data. :param user: The user uuid. :return: The response """ device: Optional[Device] = wrapper.session.query(Device).filter_by( uuid=data['device_uuid']).first() if device is None: return invalid_device if not device.check_access(user): return permission_denied if 'filename' in data: filename: str = data['filename'] else: return no_file_name if 'content' in data: content: str = data['content'] else: return no_content file_count: int = wrapper.session.query(File).filter_by( device=device.uuid, filename=filename).count() if file_count > 0: return file_already_exists if len(filename) == 0: return empty_name_not_allowed if len(filename) > 64: return name_too_long if len(content) > CONTENT_LENGTH: return length_exceeded file: Optional[File] = File.create(device.uuid, filename, content) return file.serialize
def test__model__device__create__different_uuid(self): first_element = File.create("device", "foo.bar", "super", "baz", False).uuid second_element = File.create("device", "foo.bar", "super", "baz", False).uuid self.assertNotEqual(first_element, second_element)
def add(cls, _id, kootaj, desc=''): obj = Model(kootaj=kootaj, desc=desc) obj.set_id(_id=_id) obj.create()