Source code for daily_med.tests.test_daily_med

# -*- coding: utf-8 -*-
# Copyright 2017-TODAY LasLabs Inc.
# License MIT (https://opensource.org/licenses/MIT).

import mock
import os
import unittest

from properties import HasProperties as BaseModel

from ..daily_med import DailyMed
from ..models import SPL


mock_path = 'daily_med.daily_med'


[docs]class TestDailyMed(unittest.TestCase):
[docs] def setUp(self): self.dm = DailyMed()
[docs] def get_sample_xml(self): xml_path = os.path.join( os.path.abspath(os.path.dirname(__file__)), 'spl_doc_1.xml', ) with open(xml_path, 'r') as fh: return fh.read()
@mock.patch('%s.RequestPaginator' % mock_path)
[docs] def test_call(self, paginator): """ It should create a RequestPaginator w/ the proper args. """ self.dm.API_BASE = 'base' params = {'params': 1} self.dm.call('endpoint', BaseModel, params) paginator.assert_called_once_with( 'base/endpoint.json', params, output_type=BaseModel, )
@mock.patch('%s.RequestPaginator' % mock_path)
[docs] def test_call_return(self, paginator): """ It should return the paginator. """ res = self.dm.call('endpoint', BaseModel) self.assertEqual(res, paginator())
@mock.patch('%s.requests' % mock_path)
[docs] def test_get_spl_request(self, requests): """ It should request the proper URI. """ text_mock = mock.MagicMock() text_mock.text = self.get_sample_xml() requests.get.return_value = text_mock self.dm.API_BASE = 'base' self.dm.get_spl('set_id') requests.get.assert_called_once_with( url='base/spls/set_id.xml', )
@mock.patch('%s.requests' % mock_path)
[docs] def test_get_spl_return(self, requests): """ It should return an SPLDocument """ text_mock = mock.MagicMock() text_mock.text = self.get_sample_xml() requests.get.return_value = text_mock res = self.dm.get_spl('set_id') self.assertIsInstance(res, SPL)
[docs] def test_get_spls(self): """ It should make the proper call and return it. """ with mock.patch.object(self.dm, 'call') as call: kwargs = {'kwargs': 'sZdsdfd'} res = self.dm.get_spls(**kwargs) call.assert_called_once_with( 'spls', SPL, kwargs, ) self.assertEqual(res, call())