# Path: hotness/exceptions/builder_exception.py
# class BuilderException(BaseHotnessException):
#     """
#     Class representing builder exception.
#     This exception is raised by builder
#     when it encounters error with external builder system.
# 
#     Attributes:
#         message: Error message.
#         value: Partial output from builder, needed for koji build id.
#         std_out: Standard output of command if the exception was triggered by subprocess call.
#         std_err: Error output of command if the exception was triggered by subprocess call.
#     """
# 
#     def __init__(
#         self,
#         message: str,
#         value: Dict = {},
#         std_out: str = "",
#         std_err: str = "",
#     ) -> None:
#         """
#         Class constructor.
#         """
#         self.message = message
#         self.value = value
#         self.std_out = std_out
#         self.std_err = std_err
#         super(BuilderException, self).__init__(self.message, self.value)
# 
#     def __str__(self) -> str:
#         """
#         String representation of error.
#         """
#         message = ""
#         if self.value:
#             if "build_id" in self.value:
#                 message = (
#                     "Build started, but failure happened "
#                     "during post build operations:\n{}\n"
#                 ).format(self.message)
#         if not message:
#             message = "Build failed:\n{}\n".format(self.message)
#         if self.std_out:
#             message = message + "\nStdOut:\n{}\n".format(self.std_out)
#         if self.std_err:
#             message = message + "\nStdErr:\n{}\n".format(self.std_err)
#         return message


import pytest
from hotness.exceptions import BuilderException
            std_err="This is an error output",
        )

        with pytest.raises(Exception):
            raise exception

        assert exception.message == "This error is a tech heresy!"
        assert exception.value == {"build_id": 100}
        assert exception.std_out == "This is a standard output"
        assert exception.std_err == "This is an error output"


class TestBuilderExceptionStr:
    """
    Test class for `hotness.exceptions.BuilderException.__str__` method.
    """

    def test_str(self):
        """
        Assert that the string representation of exception is correct.
        """
        exception = BuilderException("This error is a tech heresy!")

        assert str(exception) == ("Build failed:\n" "This error is a tech heresy!\n")

    def test_str_build_id(self):
        """
        Assert that the string representation of exception is correct
        when build id is available.
        """

# Path: hotness/exceptions/builder_exception.py
# class BuilderException(BaseHotnessException):
#     """
#     Class representing builder exception.
#     This exception is raised by builder
#     when it encounters error with external builder system.
# 
#     Attributes:
#         message: Error message.
#         value: Partial output from builder, needed for koji build id.
#         std_out: Standard output of command if the exception was triggered by subprocess call.
#         std_err: Error output of command if the exception was triggered by subprocess call.
#     """
# 
#     def __init__(
#         self,
#         message: str,
#         value: Dict = {},
#         std_out: str = "",
#         std_err: str = "",
#     ) -> None:
#         """
#         Class constructor.
#         """
#         self.message = message
#         self.value = value
#         self.std_out = std_out
#         self.std_err = std_err
#         super(BuilderException, self).__init__(self.message, self.value)
# 
#     def __str__(self) -> str:
#         """
#         String representation of error.
#         """
#         message = ""
#         if self.value:
#             if "build_id" in self.value:
#                 message = (
#                     "Build started, but failure happened "
#                     "during post build operations:\n{}\n"
#                 ).format(self.message)
#         if not message:
#             message = "Build failed:\n{}\n".format(self.message)
#         if self.std_out:
#             message = message + "\nStdOut:\n{}\n".format(self.std_out)
#         if self.std_err:
#             message = message + "\nStdErr:\n{}\n".format(self.std_err)
#         return message


# Path: tests/exceptions/test_builder_exception.py
import pytest
from hotness.exceptions import BuilderException

            std_err="This is an error output",
        )

        with pytest.raises(Exception):
            raise exception

        assert exception.message == "This error is a tech heresy!"
        assert exception.value == {"build_id": 100}
        assert exception.std_out == "This is a standard output"
        assert exception.std_err == "This is an error output"


class TestBuilderExceptionStr:
    """
    Test class for `hotness.exceptions.BuilderException.__str__` method.
    """

    def test_str(self):
        """
        Assert that the string representation of exception is correct.
        """
        exception = BuilderException("This error is a tech heresy!")

        assert str(exception) == ("Build failed:\n" "This error is a tech heresy!\n")

    def test_str_build_id(self):
        """
        Assert that the string representation of exception is correct
        when build id is available.
        """

        exception = BuilderException(