API Reference

FixturesManager

class charlatan.FixturesManager(db_session=None, use_unicode=False, get_builder=None, delete_builder=None)

Manage Fixture objects.

Parameters:
  • db_session (Session) – sqlalchemy Session object
  • use_unicode (bool) –
  • get_builder (func) –
  • delete_builder (func) –

New in version 0.4.0: get_builder and delete_builder arguments were added.

Deprecated since version 0.4.0: delete_instance, save_instance methods were deleted in favor of using builders.

New in version 0.3.0: db_session argument was added.

clean_cache()

Clean the cache.

delete_fixture(fixture_key, builder=None)

Delete a fixture instance.

Parameters:
  • fixture_key (str) –
  • builder (func) –

Before and after the process, the before_delete() and after_delete() hook are run.

New in version 0.4.0: builder argument was added.

Deprecated since version 0.4.0: delete_instance method renamed to delete_fixture for consistency reason.

get_all_fixtures(builder=None)

Get all fixtures.

Parameters:fixture_keys (iterable) –
Return type:list of instantiated but unsaved fixtures

New in version 0.4.0: builder argument was added.

Deprecated since version 0.3.7: include_relationships argument was removed.

get_fixture(fixture_key, overrides=None, builder=None)

Return a fixture instance (but do not save it).

Parameters:
  • fixture_key (str) –
  • overrides (dict) – override fields
  • builder (func) – build builder.
Return type:

instantiated but unsaved fixture

New in version 0.4.0: builder argument was added. attrs argument renamed overrides.

Deprecated since version 0.4.0: do_not_save argument was removed.

Deprecated since version 0.3.7: include_relationships argument was removed.

get_fixtures(fixture_keys, builder=None)

Get fixtures from iterable.

Parameters:fixture_keys (iterable) –
Return type:list of instantiated but unsaved fixtures

New in version 0.4.0: builder argument was added.

Deprecated since version 0.3.7: include_relationships argument was removed.

get_hook(hook_name)

Return a hook.

Parameters:hook_name (str) – e.g. before_delete.
install_all_fixtures()

Install all fixtures.

Return type:list of fixture_instance

Deprecated since version 0.4.0: do_not_save argument was removed.

Deprecated since version 0.3.7: include_relationships argument was removed.

install_fixture(fixture_key, overrides=None)

Install a fixture.

Parameters:
  • fixture_key (str) –
  • overrides (dict) – override fields
Return type:

fixture_instance

Deprecated since version 0.4.0: do_not_save argument was removed. attrs argument renamed overrides.

Deprecated since version 0.3.7: include_relationships argument was removed.

install_fixtures(fixture_keys)

Install a list of fixtures.

Parameters:fixture_keys (str or list of strs) – fixtures to be installed
Return type:list of fixture_instance

Deprecated since version 0.4.0: do_not_save argument was removed.

Deprecated since version 0.3.7: include_relationships argument was removed.

keys()

Return all fixture keys.

load(filenames, models_package='')

Pre-load the fixtures. Does not install anything.

Parameters:
  • filename (list_or_str) – file or list of files that holds the fixture data
  • models_package (str) – package holding the models definition

Deprecated since version 0.3.0: db_session argument was removed and put in the object’s constructor arguments.

Changed in version 0.3.7: filename argument was changed to filenames, which can be list or string.

set_hook(hookname, func)

Add a hook.

Parameters:
  • hookname (str) –
  • func (function) –
uninstall_all_fixtures()

Uninstall all installed fixtures.

Return type:None

Deprecated since version 0.4.0: do_not_delete argument was removed. This function does not return anything.

uninstall_fixture(fixture_key)

Uninstall a fixture.

Parameters:fixture_key (str) –
Return type:None

Deprecated since version 0.4.0: do_not_delete argument was removed. This function does not return anything.

uninstall_fixtures(fixture_keys)

Uninstall a list of installed fixtures.

Parameters:fixture_keys (str or list of strs) – fixtures to be uninstalled
Return type:None

Deprecated since version 0.4.0: do_not_delete argument was removed. This function does not return anything.

FixturesManagerMixin

class charlatan.FixturesManagerMixin

Class from which test cases should inherit to use fixtures.

Changed in version 0.3.12: FixturesManagerMixin does not install class attributes fixtures anymore.

Changed in version 0.3.0: use_fixtures_manager method renamed init_fixtures.

Changed in version 0.3.0: Extensive change to the function signatures.

get_fixture(*args, **kwargs)

Return a fixture instance (but do not save it).

Parameters:
  • fixture_key (str) –
  • overrides (dict) – override fields
  • builder (func) – build builder.
Return type:

instantiated but unsaved fixture

New in version 0.4.0: builder argument was added. attrs argument renamed overrides.

Deprecated since version 0.4.0: do_not_save argument was removed.

Deprecated since version 0.3.7: include_relationships argument was removed.

get_fixtures(*args, **kwargs)

Get fixtures from iterable.

Parameters:fixture_keys (iterable) –
Return type:list of instantiated but unsaved fixtures

New in version 0.4.0: builder argument was added.

Deprecated since version 0.3.7: include_relationships argument was removed.

init_fixtures()

Initialize the fixtures.

This function must be called before doing anything else.

install_all_fixtures(*args, **kwargs)

Install all fixtures.

Return type:list of fixture_instance

Deprecated since version 0.4.0: do_not_save argument was removed.

Deprecated since version 0.3.7: include_relationships argument was removed.

install_fixture(*args, **kwargs)

Install a fixture.

Parameters:
  • fixture_key (str) –
  • overrides (dict) – override fields
Return type:

fixture_instance

Deprecated since version 0.4.0: do_not_save argument was removed. attrs argument renamed overrides.

Deprecated since version 0.3.7: include_relationships argument was removed.

install_fixtures(*args, **kwargs)

Install a list of fixtures.

Parameters:fixture_keys (str or list of strs) – fixtures to be installed
Return type:list of fixture_instance

Deprecated since version 0.4.0: do_not_save argument was removed.

Deprecated since version 0.3.7: include_relationships argument was removed.

uninstall_all_fixtures(*args, **kwargs)

Uninstall all installed fixtures.

Return type:None

Deprecated since version 0.4.0: do_not_delete argument was removed. This function does not return anything.

uninstall_fixture(*args, **kwargs)

Uninstall a fixture.

Parameters:fixture_key (str) –
Return type:None

Deprecated since version 0.4.0: do_not_delete argument was removed. This function does not return anything.

uninstall_fixtures(*args, **kwargs)

Uninstall a list of installed fixtures.

Parameters:fixture_keys (str or list of strs) – fixtures to be uninstalled
Return type:None

Deprecated since version 0.4.0: do_not_delete argument was removed. This function does not return anything.

Fixture

class charlatan.Fixture(key, fixture_manager, model=None, fields=None, inherit_from=None, deep_inherit=False, post_creation=None, id_=None, models_package='', depend_on=frozenset([]))

Represent a fixture that can be installed.

static extract_rel_name(name)

Return the relationship and attr from an argument to !rel.

extract_relationships()

Return all dependencies.

Rtype generator:
 

Yields (depends_on, attr_name).

get_class()

Return class object for this instance.

get_instance(path=None, overrides=None, builder=None)

Instantiate the fixture using the model and return the instance.

Parameters:
  • path (str) – remaining path to return
  • overrides (dict) – overriding fields
  • builder (func) – function that is used to get the fixture

Deprecated since version 0.4.0: fields argument renamed overrides.

New in version 0.4.0: builder argument added.

Deprecated since version 0.3.7: include_relationships argument removed.

get_relationship(name)

Get a relationship and its attribute if necessary.

Utils

charlatan.utils.copy_docstring_from(klass)

Copy docstring from another class, using the same function name.

charlatan.utils.datetime_to_epoch_in_ms(a_datetime)

Return the epoch timestamp for the given datetime.

Parameters:a_datetime (datetime) – The datetime to translate
Return type:int
>>> a_datetime = datetime.datetime(2013, 11, 21, 1, 33, 11, 160611)
>>> datetime_to_epoch_timestamp(a_datetime)
1384997591.160611
>>> datetime_to_epoch_in_ms(a_datetime)
1384997591161
charlatan.utils.datetime_to_epoch_timestamp(a_datetime)

Return the epoch timestamp for the given datetime.

Parameters:a_datetime (datetime) – The datetime to translate
Return type:float
>>> a_datetime = datetime.datetime(2013, 11, 21, 1, 33, 11, 160611)
>>> datetime_to_epoch_timestamp(a_datetime)
1384997591.160611
charlatan.utils.deep_update(source, overrides)

Update a nested dictionary or similar mapping.

Modify source in place.

charlatan.utils.extended_timedelta(**kwargs)

Return a timedelta object based on the arguments.

Parameters:
  • years (integer) –
  • months (integer) –
  • days (integer) –
Return type:

timedelta instance

Since timedelta‘s largest unit are days, timedelta objects cannot be created with a number of months or years as an argument. This function lets you create timedelta objects based on a number of days, months and years.

>>> extended_timedelta(months=1)
datetime.timedelta(30)
>>> extended_timedelta(years=1)
datetime.timedelta(365)
>>> extended_timedelta(days=1, months=1, years=1)
datetime.timedelta(396)
>>> extended_timedelta(hours=1)
datetime.timedelta(0, 3600)
charlatan.utils.get_timedelta(delta)

Return timedelta from string.

Parameters:delta (str) –
Return type:datetime.timedelta instance
>>> get_timedelta("")
datetime.timedelta(0)
>>> get_timedelta("+1h")
datetime.timedelta(0, 3600)
>>> get_timedelta("+10h")
datetime.timedelta(0, 36000)
>>> get_timedelta("-10d")
datetime.timedelta(-10)
>>> get_timedelta("+1m")
datetime.timedelta(30)
>>> get_timedelta("-1y")
datetime.timedelta(-365)
>>> get_timedelta("+10d2h")
datetime.timedelta(10, 7200)
>>> get_timedelta("-10d2h")
datetime.timedelta(-11, 79200)
>>> get_timedelta("-21y2m1d24h")
datetime.timedelta(-7727)
>>> get_timedelta("+5M")
datetime.timedelta(0, 300)
charlatan.utils.is_sqlalchemy_model(instance)

Return True if instance is an SQLAlchemy model instance.

charlatan.utils.richgetter(obj, path)

Return a attrgetter + item getter.

charlatan.utils.safe_iteritems(items)

Safely iterate over a dict or a list.