def test_goatme_invoke_calls_api_client_fetch_returns_url_from_link_if_no_images_array( ): api_client = ApiClient() api_client.fetch = MagicMock(return_value={'data': [{'link': 'test_url'}]}) goat_me = GoatMe() goat_me.imgur_key = "fake_imgur_key" goat_me.api_client = api_client text, attachments = goat_me.invoke("goatme", "fakeuser") assert attachments == [{'image_url': 'test_url', 'title': 'test_url'}]
def test_goatme_invoke_calls_api_client_fetch_if_greater_than_30_minutes(): #arrange id = uuid.uuid1() api_client = ApiClient() api_client.fetch = MagicMock(return_value={'data': [{'link': id}]}) goat_me = GoatMe() goat_me.imgur_key = "fake_imgur_key" goat_me.api_client = api_client #act text, attachments = goat_me.invoke("goatme", "fakeuser") #assert assert attachments == [{'image_url': id, 'title': id}] target = datetime.datetime.now() + datetime.timedelta( minutes=40) #change datetime to 12 minutes from now with mock_datetime(target, datetime): new_id = uuid.uuid1() api_client.fetch = MagicMock(return_value={'data': [{'link': new_id}]}) text, attachments = goat_me.invoke("goatme", "fakeuser") assert attachments != [{'image_url': id, 'title': id}] assert attachments == [{'image_url': new_id, 'title': new_id}]