Changeset 1888

Show
Ignore:
Timestamp:
11/14/08 15:20:01 (8 weeks ago)
Author:
slinkp
Message:

ADDED mocks of the flickr API using minimock, this fixes recent test failures and avoids hitting flickr during test runs

Location:
siteapp/trunk/opengeo/almanac
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • siteapp/trunk/opengeo/almanac/ftests.py

    r1484 r1888  
    77def test_suite(): 
    88    """ 
    9     These are my tests 
     9    Functional tests using  
    1010    """ 
    1111    from opengeo.almanac import testing 
     
    2525    data2 = testing.fresh_story_data() 
    2626    content_setup = testing.setup_basic_content_fixture 
    27     import pdb  
     27    import pdb 
     28    real_settrace = pdb.set_trace  # zope.testbrowser does something evil  
    2829    globs = testing.fresh_ftest_globs() 
    2930    new_request = testing.new_request 
  • siteapp/trunk/opengeo/almanac/rest.txt

    r1837 r1888  
    9696    >>> url = "http://localhost/++rest++app/our-app/a1" 
    9797    >>> response = http_call('GET', url + "?lineno=58") 
     98    Called FlickrAPI.photos_getInfo(photo_id='1234') 
     99 
    98100    >>> print response.getBody()   
    99101    <atom:feed xmlns:atom="http://www.w3.org/2005/Atom"> 
  • siteapp/trunk/opengeo/almanac/testing.py

    r1577 r1888  
    22from grok.ftests.test_grok_functional import checker 
    33from opengeo.almanac import REQUIREMENT as req 
    4 from opengeo.almanac import validata, content, utils 
     4from opengeo.almanac import validata, content 
    55from opengeo.testing.suite import TestCollector, DTSuiteFactory 
    66from pprint import pprint 
     
    1313from zope.testing import doctest 
    1414import base64, urllib 
     15import minimock 
    1516import pkg_resources 
    16 from decorator import decorator 
    1717import zope.component.eventtesting 
    1818 
     
    5656        if self.setup is None: 
    5757            self.setup = FunctionalTestSetup(self.config_file) 
    58          
     58 
     59_mock_restore = {} 
     60 
     61def mock_get_flicker_api(): 
     62    api = minimock.Mock('FlickrAPI') 
     63    class Bunch: 
     64        # A generic dummy container for attributes. 
     65        def __init__(self, **kw): 
     66            for name, val in kw.items(): 
     67                setattr(self, name, val) 
     68 
     69    MockPhoto = Bunch(attrib={'stat': u'ok'}, 
     70                      photo=[{'farm': 'mock farmid', 'server': 'mock server', 
     71                              'secret': 'mock secret'}]) 
     72    api.photos_getInfo.mock_returns = MockPhoto 
     73     
     74    MockUploadResult = Bunch(attrib={'stat': u'ok'}, 
     75                             photoid=[Bunch(text='mock photo id')]) 
     76    api.upload.mock_returns = MockUploadResult 
     77 
     78    api.photos_licenses_setLicense.mock_returns = Bunch(attrib={'stat': u'ok'}) 
     79    return api 
     80 
    5981def f_setUp(test=None): 
    6082    if ZCMLayer.setup is None: 
    6183        ZCMLayer.setup = FunctionalTestSetup(ftesting_zcml) 
    6284    ZCMLayer.setup.setUp() 
     85    from opengeo.almanac import content 
     86    if not content.get_flickrapi_object is mock_get_flicker_api: 
     87        _mock_restore['get_flickrapi_object'] = content.get_flickrapi_object 
     88        content.get_flickrapi_object = mock_get_flicker_api 
    6389 
    6490def f_tearDown(test): 
     91    # we could probably just call minimock 
     92    old_flickrapi = _mock_restore.get('get_flickrapi_object') 
     93    if old_flickrapi is not None: 
     94        from opengeo.almanac import content 
     95        content.get_flickrapi_object = old_flickrapi 
    6596    ZCMLayer.setup.tearDown() 
    6697