Exemple #1
0
def test_diff(mocker):
    mocker.patch(
        'confidant.models.credential.Credential'
        '._get_decrypted_credential_pairs',
        return_value={},
    )
    modified_by = '*****@*****.**'
    modified_date_old = datetime.now
    modified_date_new = datetime.now
    old = Credential(
        name='test',
        revision=1,
        enabled=True,
        documentation='old',
        metadata={'hello': 'world'},
        modified_by=modified_by,
        modified_date=modified_date_old,
        tags=['FINANCIALLY_SENSITIVE', 'IMPORTANT'],
    )
    new = Credential(
        name='test2',
        revision=2,
        enabled=True,
        documentation='',
        metadata={'foo': 'bar'},
        modified_by=modified_by,
        modified_date=modified_date_new,
        tags=['ADMIN_PRIV', 'IMPORTANT'],
    )
    # TODO: figure out how to test decrypted_credential_pairs. Mocking
    # it is turning out to be difficult.
    expectedDiff = {
        'name': {
            'removed': 'test',
            'added': 'test2',
        },
        'metadata': {
            'removed': ['hello'],
            'added': ['foo'],
        },
        'documentation': {
            'removed': 'old',
            'added': '',
        },
        'modified_by': {
            'removed': modified_by,
            'added': modified_by,
        },
        'modified_date': {
            'removed': modified_date_old,
            'added': modified_date_new,
        },
        'tags': {
            'removed': ['FINANCIALLY_SENSITIVE'],
            'added': ['ADMIN_PRIV'],
        },
    }
    assert old.diff(new) == expectedDiff