"""Test AbacusEvent.""" import json from lib.abacus_event import AbacusEvent def test_abacus_event_create(): """Test creating an abacus event.""" assert AbacusEvent() def test_abacus_event_create_with_data(): """Test creating an abacus event with data populated.""" mock_event = AbacusEvent(**{ 'abacus_event_id': 1, 'event_name': 'foo', 'user_id': 'baz', 'user_type': 'orchard_suite' }) assert mock_event.abacus_event_id == 1 assert mock_event.user_type == 'orchard_suite' def test_abacus_event_from_json(mock_event_json): """Test creating an abacus event from a json representation.""" mock_event = AbacusEvent.from_json(mock_event_json) assert mock_event.event_date == '2020-07-17 18:57:21.590679' assert mock_event.event_name == 'foo' assert mock_event.user_id is None def test_abacus_event_to_json(mock_event_data, mock_event_json): """Test converting an abacus event into a json string.""" mock_event = AbacusEvent(**mock_event_data) actual = mock_event.to_json() assert actual == mock_event_json def test_abacus_event_to_dict(mock_event_partial_data, mock_event_data): """Test converting an abacus event into a dict.""" mock_event = AbacusEvent(**mock_event_partial_data) mock_event_dict = mock_event.to_dict() assert mock_event_dict == mock_event_data def test_abacus_event_from_params(): """Test creating an abacus event from a DAG task params argument.""" mock_event_params = { 'abacus_event_id': 1, 'event_date': '2020-07-17 18:57:21.590679', 'event_name': 'an_event', 'target_id': '6', 'target_type': 'royalty_accounting_table_name', 'user_id': '1', 'user_type': 'orchard-suite' } mock_dag_config = { 'conf': json.dumps(mock_event_params) } mock_event = AbacusEvent.from_params(mock_dag_config) assert mock_event.target_type == 'royalty_accounting_table_name'