====================
Party Erase Scenario
====================

Imports::

    >>> from proteus import Model, Wizard
    >>> from trytond.tests.tools import activate_modules, assertEqual

Activate modules::

    >>> config = activate_modules('party')

Create a party::

    >>> Party = Model.get('party.party')
    >>> Attachment = Model.get('ir.attachment')
    >>> party = Party(name='Pam')
    >>> _ = party.identifiers.new(code="Identifier")
    >>> _ = party.contact_mechanisms.new(type='other', value="mechanism")
    >>> party.save()
    >>> address, = party.addresses
    >>> address.street = "St sample, 15"
    >>> address.city = "City"
    >>> address.save()
    >>> identifier, = party.identifiers
    >>> contact_mechanism, = party.contact_mechanisms
    >>> attachment = Attachment()
    >>> attachment.resource = party
    >>> attachment.name = "Attachment"
    >>> attachment.save()

Try erase active party::

    >>> erase = Wizard('party.erase', models=[party])
    >>> assertEqual(erase.form.party, party)
    >>> erase.execute('erase')
    Traceback (most recent call last):
        ...
    EraseError: ...

Erase inactive party::

    >>> party.active = False
    >>> party.save()

    >>> erase = Wizard('party.erase', models=[party])
    >>> assertEqual(erase.form.party, party)
    >>> erase.execute('erase')

Check fields have been erased::

    >>> party.name
    >>> identifier.reload()
    >>> identifier.code
    '****'
    >>> address.reload()
    >>> address.street
    >>> address.city
    >>> contact_mechanism.reload()
    >>> contact_mechanism.value
    '****'
    >>> Attachment.find()
    []
