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