<s> import mock <EOL> from contextlib import contextmanager <EOL> from modularodm import storage <EOL> from framework . mongo import set_up_storage <EOL> from website . addons . base . testing import OAuthAddonTestCaseMixin , AddonTestCase <EOL> from website . addons . dropbox import MODELS <EOL> from website . addons . dropbox . model import DropboxProvider <EOL> from website . addons . dropbox . tests . factories import DropboxAccountFactory <EOL> def init_storage ( ) : <EOL> set_up_storage ( MODELS , storage_class = storage . MongoStorage ) <EOL> class DropboxAddonTestCase ( OAuthAddonTestCaseMixin , AddonTestCase ) : <EOL> ADDON_SHORT_NAME = '<STR_LIT>' <EOL> ExternalAccountFactory = DropboxAccountFactory <EOL> Provider = DropboxProvider <EOL> def set_node_settings ( self , settings ) : <EOL> super ( DropboxAddonTestCase , self ) . set_node_settings ( settings ) <EOL> settings . folder = '<STR_LIT:foo>' <EOL> settings . save ( ) <EOL> mock_responses = { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : False , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:path>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : <NUM_LIT> , <EOL> '<STR_LIT:root>' : '<STR_LIT>' , <EOL> '<STR_LIT:size>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : False <EOL> } , <EOL> '<STR_LIT>' : { <EOL> "<STR_LIT:size>" : "<STR_LIT>" , <EOL> "<STR_LIT>" : "<STR_LIT>" , <EOL> "<STR_LIT>" : <NUM_LIT:0> , <EOL> "<STR_LIT>" : False , <EOL> "<STR_LIT>" : "<STR_LIT>" , <EOL> "<STR_LIT>" : "<STR_LIT>" , <EOL> "<STR_LIT:path>" : "<STR_LIT>" , <EOL> "<STR_LIT>" : True , <EOL> "<STR_LIT>" : "<STR_LIT>" , <EOL> "<STR_LIT:root>" : "<STR_LIT>" , <EOL> "<STR_LIT>" : [ <EOL> { <EOL> "<STR_LIT:size>" : "<STR_LIT>" , <EOL> "<STR_LIT>" : "<STR_LIT>" , <EOL> "<STR_LIT>" : False , <EOL> "<STR_LIT>" : <NUM_LIT:0> , <EOL> "<STR_LIT>" : "<STR_LIT>" , <EOL> "<STR_LIT>" : "<STR_LIT>" , <EOL> "<STR_LIT:path>" : "<STR_LIT>" , <EOL> "<STR_LIT>" : False , <EOL> "<STR_LIT>" : "<STR_LIT>" , <EOL> "<STR_LIT:root>" : "<STR_LIT>" , <EOL> "<STR_LIT>" : "<STR_LIT>" , <EOL> "<STR_LIT>" : <NUM_LIT> <EOL> } , <EOL> { <EOL> u'<STR_LIT>' : <NUM_LIT:0> , <EOL> u'<STR_LIT>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : True , <EOL> u'<STR_LIT>' : u'<STR_LIT>' , <EOL> u'<STR_LIT:path>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : <NUM_LIT> , <EOL> u'<STR_LIT:root>' : u'<STR_LIT>' , <EOL> u'<STR_LIT:size>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : False <EOL> } <EOL> ] , <EOL> "<STR_LIT>" : <NUM_LIT> <EOL> } , <EOL> '<STR_LIT>' : { <EOL> u'<STR_LIT>' : <NUM_LIT> , <EOL> u'<STR_LIT>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : False , <EOL> u'<STR_LIT>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : u'<STR_LIT>' , <EOL> u'<STR_LIT:path>' : '<STR_LIT>' , <EOL> u'<STR_LIT>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : <NUM_LIT:10> , <EOL> u'<STR_LIT:root>' : u'<STR_LIT>' , <EOL> u'<STR_LIT:size>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : False <EOL> } , <EOL> '<STR_LIT>' : [ { u'<STR_LIT>' : <NUM_LIT:0> , <EOL> u'<STR_LIT>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : True , <EOL> u'<STR_LIT>' : False , <EOL> u'<STR_LIT>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : u'<STR_LIT>' , <EOL> u'<STR_LIT:path>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : <NUM_LIT> , <EOL> u'<STR_LIT:root>' : u'<STR_LIT>' , <EOL> u'<STR_LIT:size>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : True } , <EOL> { u'<STR_LIT>' : <NUM_LIT> , <EOL> u'<STR_LIT>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : False , <EOL> u'<STR_LIT>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : u'<STR_LIT>' , <EOL> u'<STR_LIT:path>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : <NUM_LIT> , <EOL> u'<STR_LIT:root>' : u'<STR_LIT>' , <EOL> u'<STR_LIT:size>' : u'<STR_LIT>' , <EOL> u'<STR_LIT>' : True } ] <EOL> } <EOL> class MockDropbox ( object ) : <EOL> def put_file ( self , full_path , file_obj , overwrite = False , parent_rev = None ) : <EOL> return mock_responses [ '<STR_LIT>' ] <EOL> def metadata ( self , path , list = True , file_limit = <NUM_LIT> , hash = None , rev = None , <EOL> include_deleted = False ) : <EOL> if list : <EOL> ret = mock_responses [ '<STR_LIT>' ] <EOL> else : <EOL> ret = mock_responses [ '<STR_LIT>' ] <EOL> ret [ '<STR_LIT:path>' ] = path <EOL> return ret <EOL> def get_file_and_metadata ( * args , ** kwargs ) : <EOL> pass <EOL> def file_delete ( self , path ) : <EOL> return mock_responses [ '<STR_LIT>' ] <EOL> def revisions ( self , path ) : <EOL> ret = mock_responses [ '<STR_LIT>' ] <EOL> for each in ret : <EOL> each [ '<STR_LIT:path>' ] = path <EOL> return ret <EOL> def account_info ( self ) : <EOL> return { '<STR_LIT>' : '<STR_LIT>' } <EOL> @ contextmanager <EOL> def patch_client ( target , mock_client = None ) : <EOL> """<STR_LIT>""" <EOL> with mock . patch ( target ) as client_getter : <EOL> client = mock_client or MockDropbox ( ) <EOL> client_getter . return_value = client <EOL> yield client </s>
