def create(self, validated_data):
        """
        Create and return a new `Data` instance, given the validated data.
        """
        # Create data
        instance = Data(
            template=validated_data["template"],
            workspace=validated_data["workspace"]
            if "workspace" in validated_data else None,
            title=validated_data["title"],
            user_id=validated_data["user_id"] if "user_id" in validated_data
            else str(self.context["request"].user.id),
        )
        # Set XML content
        instance.xml_content = validated_data["xml_content"]
        # Set times
        instance.creation_date = validated_data.get("creation_date", None)
        instance.last_modification_date = validated_data.get(
            "last_modification_date", None)
        instance.last_change_date = validated_data.get("last_change_date",
                                                       None)
        # Save the data
        data_api.admin_insert(instance, request=self.context["request"])
        # Encode the response body
        # NOTE: using xml_content property would update the last_modification_date
        instance._xml_content = validated_data["xml_content"].encode("utf-8")

        return instance
Exemple #2
0
 def test_data_admin_insert_sets_last_chnage_date_if_not_provided(
     self, mock_save, mock_check, mock_convert_file
 ):
     # Arrange
     data = _create_data(
         _get_template(), user_id="3", title="title", content="<tag></tag>"
     )
     mock_save.return_value = data
     mock_check.return_value = None
     mock_convert_file.return_value = None
     mock_user = create_mock_user("3", is_superuser=True)
     mock_request = create_mock_request(user=mock_user)
     # Act
     result = data_api.admin_insert(data, request=mock_request)
     # Assert
     self.assertIsNotNone(result.last_change_date)
Exemple #3
0
 def test_data_admin_insert_sets_custom_last_change_date_if_provided(
     self, mock_save, mock_check, mock_convert_file
 ):
     # Arrange
     data = _create_data(
         _get_template(), user_id="3", title="title", content="<tag></tag>"
     )
     mock_save.return_value = data
     mock_check.return_value = None
     mock_convert_file.return_value = None
     mock_user = create_mock_user("3", is_superuser=True)
     mock_request = create_mock_request(user=mock_user)
     # Act
     yesterday = datetime.datetime.now() - datetime.timedelta(days=1)
     data.last_change_date = yesterday
     result = data_api.admin_insert(data, request=mock_request)
     # Assert
     self.assertEqual(result.last_change_date, yesterday)