From abcd8f5369abe1306c7985de736ede401464895f Mon Sep 17 00:00:00 2001 From: Roman Mogilatov Date: Mon, 3 Aug 2015 15:52:23 +0300 Subject: [PATCH] Replacing providers overriding documentation examples with literalincludes --- docs/providers/overriding.rst | 143 +--------------------------------- 1 file changed, 4 insertions(+), 139 deletions(-) diff --git a/docs/providers/overriding.rst b/docs/providers/overriding.rst index 8b604017..d3910cce 100644 --- a/docs/providers/overriding.rst +++ b/docs/providers/overriding.rst @@ -38,44 +38,8 @@ Example: :width: 80% :align: center -.. code-block:: python - - """Simple providers overriding example.""" - - from objects.providers import Factory - - - class User(object): - - """Example class User.""" - - # Users factory: - users_factory = Factory(User) - - # Creating several User objects: - user1 = users_factory() - user2 = users_factory() - - # Making some asserts: - assert user1 is not user2 - assert isinstance(user1, User) and isinstance(user2, User) - - - # Extending User: - class SuperUser(User): - - """Example class SuperUser.""" - - # Overriding users factory: - users_factory.override(Factory(SuperUser)) - - # Creating some more User objects using overridden users factory: - user3 = users_factory() - user4 = users_factory() - - # Making some asserts: - assert user4 is not user3 - assert isinstance(user3, SuperUser) and isinstance(user4, SuperUser) +.. literalinclude:: ../../examples/providers/overriding_simple.py + :language: python Example: @@ -83,104 +47,5 @@ Example: :width: 100% :align: center -.. code-block:: python - - """Overriding user's model example.""" - - from objects.providers import Factory - from objects.injections import KwArg - - - class User(object): - - """Example class User.""" - - def __init__(self, id, password): - """Initializer.""" - self.id = id - self.password = password - super(User, self).__init__() - - - class UserService(object): - - """Example class UserService.""" - - def __init__(self, user_cls): - """Initializer.""" - self.user_cls = user_cls - super(UserService, self).__init__() - - def get_by_id(self, id): - """Find user by his id and return user model.""" - return self.user_cls(id=id, password='secret' + str(id)) - - # Users factory and UserService provider: - users_service = Factory(UserService, - KwArg('user_cls', User)) - - # Getting several users and making some asserts: - user1 = users_service().get_by_id(1) - user2 = users_service().get_by_id(2) - - assert isinstance(user1, User) - assert user1.id == 1 - assert user1.password == 'secret1' - - assert isinstance(user2, User) - assert user2.id == 2 - assert user2.password == 'secret2' - - assert user1 is not user2 - - # Extending user model and user service for adding custom attributes without - # making any changes to client's code. - - - class ExtendedUser(User): - - """Example class ExtendedUser.""" - - def __init__(self, id, password, first_name=None, last_name=None, - gender=None): - """Initializer.""" - self.first_name = first_name - self.last_name = last_name - self.gender = gender - super(ExtendedUser, self).__init__(id, password) - - - class ExtendedUserService(UserService): - - """Example class ExtendedUserService.""" - - def get_by_id(self, id): - """Find user by his id and return user model.""" - user = super(ExtendedUserService, self).get_by_id(id) - user.first_name = 'John' + str(id) - user.last_name = 'Smith' + str(id) - user.gender = 'male' - return user - - # Overriding users_service provider: - extended_users_service = Factory(ExtendedUserService, - KwArg('user_cls', ExtendedUser)) - users_service.override(extended_users_service) - - # Getting few other users users and making some asserts: - user3 = users_service().get_by_id(3) - user4 = users_service().get_by_id(4) - - assert isinstance(user3, ExtendedUser) - assert user3.id == 3 - assert user3.password == 'secret3' - assert user3.first_name == 'John3' - assert user3.last_name == 'Smith3' - - assert isinstance(user4, ExtendedUser) - assert user4.id == 4 - assert user4.password == 'secret4' - assert user4.first_name == 'John4' - assert user4.last_name == 'Smith4' - - assert user3 is not user4 +.. literalinclude:: ../../examples/providers/overriding_users_model.py + :language: python