Exceptions

All the exceptions raised by dammy are included in this module.

This module contains all the custom exceptions used by dammy.

exception dammy.exceptions.DammyException

The base exception from which all dammy exceptions inherit

Note

This exception should not be raised by any means. Its only purpose is to check in a try-catch block wether an exception has been raised by dammy or not.

with_traceback()

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.

exception dammy.exceptions.DatasetRequiredException

This exception is raised when a generator requires a dataset to get references from it but no dataset is given

Example:

from dammy import EntityGenerator
from dammy.stdlib import RandomInteger

class B(EntityGenerator):
    attribute1 = RandomInteger(15, 546)
    reference_to_A = ForeignKey(A, 'attribute1')

B().generate()  # generate() requires a dataset because B contains a reference to another generator
                # thus, this call will result in a DatasetRequiredException
with_traceback()

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.

exception dammy.exceptions.IntegrityException

Raised when database integrity rules are violated

Example:

from dammy import EntityGenerator
from dammy.db import ForeignKey
from dammy.stdlib import RandomInteger

class A(EntityGenerator):
    attribute1 = RandomInteger(1, 10)
    attribute2 = RandomInteger(2, 5)

class B(EntityGenerator):
    attribute1 = RandomInteger(15, 546)
    reference_to_A = ForeignKey(A, 'attribute1')

This example will raise a IntegrityException because reference_to_A in class B is a foreign key referencing the field attribute1 from class A, and A.attribute1 is not a primary key

with_traceback()

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.

exception dammy.exceptions.InvalidReferenceException

Raised when a foreign key references a field which is not a primary key or unique

This is commonly raised when the amount of generated data is bigger than the available data on a generator obtaining its data from a file.

with_traceback()

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.

exception dammy.exceptions.MaximumRetriesExceededException

Raised when a unique field exceeds the maximum number of retries to generate a unique value

This is commonly raised when the amount of generated data is bigger than the available data on a generator obtaining its data from a file.

Example:

from dammy.db import Unique
from dammy.stdlib import RandomInteger

x = Unique(RandomInteger(1, 10))

for i in range(0, 50):
    print(x)            # Exception after generating 10 values

The code will result in an exception because it will try to generate 50 unique integers in the [1, 10] interval, which is obviously impossible because there are 10 unique integers available

with_traceback()

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.