Ignore:
Timestamp:
18/02/09 11:33:18 (11 years ago)
Author:
cbyrom
Message:

Move generic 'httpify' method to utilities + adjust utilities method
to retrive default proxy to cope with standard formatting + set this
up on each call to urlopen - since different urls may use different
proxies + tidyup and extend test suite.

Location:
ndgCommon/trunk/ndg/common/unittests
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • ndgCommon/trunk/ndg/common/unittests/clients/ws/testdiscoveryserviceclient.py

    r4941 r4991  
    66class TestCase(unittest.TestCase): 
    77     
     8    # NB, for the tests to work, this search term needs to return some results 
     9    VALID_TERM = 'temperature' 
     10    INVALID_TERM = 'xpabnl_________DFDSF' 
     11    def setUp(self): 
     12        ''' 
     13        set up data used in the tests. 
     14        ''' 
     15        self.client = DiscoveryServiceClient() 
     16     
    817    def testSearch(self): 
    918        ''' Test fundamental search capability - should return ten documents''' 
    1019        term='temperature' 
    11         s=DiscoveryServiceClient() 
    1220        howmany=10 
    13         docs=s.search(term,start=1,howmany=howmany) 
     21        docs = self.client.search(term,start=1,howmany=howmany) 
    1422        self.assertEqual(howmany,len(docs)) 
    1523         
     
    1725        ''' Test returning of labelled documents ''' 
    1826        term='dppp' 
    19         s=DiscoveryServiceClient() 
    20         r=s.search(term) 
    21         output=s.getLabelledDocs() 
     27        r=self.client.search(term) 
     28        output=self.client.getLabelledDocs() 
    2229        self.assertNotEqual(len(output), 0) 
    2330         
    2431    def testNoReturn(self): 
    2532        ''' Tests a search return with (hopefully nothing to be found)''' 
    26         term='xpabnl' 
    27         s=DiscoveryServiceClient() 
    28         r=s.search(term) 
    29         self.assertEqual(s.hits,0) 
    30          
     33        r=self.client.search(self.INVALID_TERM) 
     34        self.assertEqual(self.client.hits,0) 
     35     
    3136    def testGetDoc(self): 
    32         ''' Test obtaining a specific document which had better exist ''' 
    33         doc= tc.VALID_DISCOVERY_PROVIDER_ID + "__" + no.DIF_DOC_TYPE + \ 
    34             "__" + tc.VALID_DISCOVERY_DOC_ID + ".xml" 
    35         s=DiscoveryServiceClient() 
    36         r=s.getDoc(doc) 
     37        ''' Test obtaining a specific document ''' 
     38        docs = self.client.search(self.VALID_TERM,start = 1,howmany = 1) 
     39        r=self.client.getDoc(docs[0]) 
    3740        self.assertNotEqual(r.find('<DIF'), -1) 
     41     
     42    def testGetDocs(self): 
     43        ''' Test obtaining specific documents ''' 
     44        docs = self.client.search(self.VALID_TERM,start = 1,howmany = 10) 
     45        r=self.client.getDocs(docs) 
     46        for key, val in r.items(): 
     47            self.assertNotEqual(val.find('<DIF'), -1) 
     48             
     49        self.assertTrue(r.keys() > 1) 
     50        docs = r.values() 
     51        self.assertNotEquals(docs[0], docs[1]) 
     52         
    3853         
    3954    def testSequence(self): 
    4055        ''' Tests that repeated searches work and can support zero responses in the middle ''' 
    4156        # this was a bug we found and needed a test case for 
    42         s=DiscoveryServiceClient() 
    4357        term='CD97' # hopefully just get a couple of hits for now. 
    44         r=s.search(term) 
     58        r=self.client.search(term) 
    4559        #if we uncomment this it used to break, and not if uncommented, now it seems ok... 
    46         output1=s.getLabelledDocs()  
    47         term='xpabnl' 
    48         r=s.search(term) 
    49         self.assertEqual(s.hits,0) 
     60        output1=self.client.getLabelledDocs()  
     61        r=self.client.search(self.INVALID_TERM) 
     62        self.assertEqual(self.client.hits,0) 
    5063        term='CD97' 
    51         r=s.search(term) 
    52         self.assertEqual(s.getLabelledDocs(),output1) 
     64        r=self.client.search(term) 
     65        self.assertEqual(self.client.getLabelledDocs(),output1) 
    5366         
    5467    def testGet(self): 
    5568        ''' Tests getting via uri components ''' 
    56          
    57         (r,s,l)=tc.VALID_DISCOVERY_PROVIDER_ID, \ 
    58             no.DIF_DOC_TYPE, tc.VALID_DISCOVERY_DOC_ID 
    59         ss=DiscoveryServiceClient() 
    60         x=ss.getNDGDoc(r,s,l,format='DC') 
    61         self.assertNotEqual(x.find('<oai_dc'), -1) 
     69        docs = self.client.search(self.VALID_TERM,start = 1,howmany = 1) 
     70        doc = docs[0].split('.xml')[0] 
     71        n = no(doc) 
     72        x=self.client.getNDGDoc(n.repository, n.schema, n.localID,format='DC') 
     73        self.assertTrue(x.find('<oai_dc') > -1) 
    6274         
    6375    def testFailedGet(self): 
    6476        doc='abc' 
    65         s=DiscoveryServiceClient() 
    6677        try: 
    67             r=s.getDoc(doc) 
     78            r=self.client.getDoc(doc) 
    6879        except ValueError,e: 
    6980            self.assertEqual(str(e),\ 
  • ndgCommon/trunk/ndg/common/unittests/clients/xmldb/eXist/testsearchclient.py

    r4942 r4991  
    103103         
    104104         
     105    def testGetNDGB1(self): 
     106        self.createdAtoms.append(self.utils.createOldMolesDoc()) 
     107        doc = self.client.getNDGDoc(tc.VALID_PROVIDER_ID, no.MOLES_DOC_TYPE,  
     108                                    tc.VALID_MOLES_ID, 
     109                                    targetCollection = dc.MOLES_COLLECTION_PATH) 
     110        self.assertTrue(doc.find('dgMetadataRecord') > -1) 
     111        self.assertTrue(doc.find(tc.VALID_MOLES_ID) > -1) 
     112         
     113         
    105114    def testGetDIF(self): 
    106115        self.createdAtoms.append(self.utils.createOldMolesDoc()) 
  • ndgCommon/trunk/ndg/common/unittests/models/test_ndgObject.py

    r4944 r4991  
    8383        self.assertEqual(tc.VALID_DISCOVERY_URL + '?format=xml', n.printableURL) 
    8484           
    85     def testGetAtom(self): 
    86         ''' Get an atom doc ''' 
    87         uri=tc.VALID_PROVIDER_ID + '__' + no.ATOM_DOC_TYPE + '__' + \ 
    88             tc.datasetID 
    89          
    90         self.utils = tu(tc.EXIST_DBCONFIG_FILE) 
    91         atom = self.utils.createAtomInEXist(tc.xmlString) 
    92         n=no(uri,self.config) 
    93         doc = n.get() 
    94         print "type: %s\ndata: --%s--" %(type(doc), doc) 
    95         self.assertNotEqual(doc.find(tc.datasetID), -1) 
    96         self.utils.deleteDoc(atom.getFullPath()) 
    97            
    98     def testGetInvalidAtom(self): 
    99         ''' Get an atom doc ''' 
    100         uri=tc.VALID_PROVIDER_ID + '__' + no.ATOM_DOC_TYPE + '__' + \ 
    101             tc.VALID_ATOM_DOC_ID + 'blah' 
    102         n=no(uri,self.config) 
    103         doc = n.get() 
    104         self.assertEqual(doc, 0) 
    105  
    10685    def testPMLuri(self): 
    10786        '''Make sure the pml uris work in ndg object ''' 
  • ndgCommon/trunk/ndg/common/unittests/models/testdif.py

    r4944 r4991  
    22from ndg.common.src.models.DIF import DIF 
    33from ndg.common.src.models.ndgObject import ndgObject 
    4 from ndg.common.src.dal.ndgRetrieve import ndgRetrieve 
     4from ndg.common.src.dal.ndgRetrieve import NDGRetrieve 
    55from ndg.common.src.models.myconfig import myConfig 
    66import ndg.common.unittests.testconstants as tc 
     
    4545        testURI='neodc.nerc.ac.uk__DIF__NEODC_NEXTMAP' 
    4646        uri=ndgObject(testURI,config=self.config) 
    47         status,xml=ndgRetrieve(uri,self.config) 
     47        ndgRetrieve = NDGRetrieve(self.config) 
     48        status,xml = ndgRetrieve.retrieveDoc(uri) 
    4849        self.assertEqual(status,1) 
    4950        xml = ET.fromstring(xml) 
  • ndgCommon/trunk/ndg/common/unittests/models/teststubb.py

    r4944 r4991  
    22from ndg.common.src.models.stubB import * 
    33from ndg.common.src.models.ndgObject import * 
    4 from ndg.common.src.dal.ndgRetrieve import ndgRetrieve 
     4from ndg.common.src.clients.xmldb.eXist.searchclient import SearchClient 
    55from xml.etree import ElementTree as ET 
    66from ndg.common.src.models.myconfig import myConfig 
    77import ndg.common.unittests.testconstants as tc 
    8      
     8from ndg.common.unittests.testutils import testUtils as tu 
     9from ndg.common.src.models.ndgObject import ndgObject as no 
     10import ndg.common.src.clients.xmldb.eXist.dbconstants as dc 
     11 
    912class TestCase(unittest.TestCase): 
    1013 
    11         def OFFtestDE(self): 
    12             # NB, this requires a valid NDGB1 file to be available 
    13             ''' Test rendering a DataEntity stubB ''' 
    14             doc='badc.nerc.ac.uk__NDG-B1__dataent_EASOE'#dataent_COAPEC' 
    15             xml=self.getit(doc)      
    16             self.doit(xml.tree) 
    17              
    18         def getit(self,doc): 
    19             self.c=myConfig(tc.NDG_CONFIG_FILE) 
    20             uri=ndgObject(doc) 
    21             status,xml=ndgRetrieve(uri,self.c, discovery=0) 
    22             self.assertEqual(status,1) 
    23             xml = ET.fromstring(xml) 
    24             return xml 
    25        
    26         def doit(self,xml): 
    27             x=stubB(xml,self.c) 
    28              
    29       
    30 if __name__=="__main__": 
    31     unittest.main() 
    32              
    33              
     14    def setUp(self): 
     15        ''' 
     16        set up data used in the tests. 
     17        ''' 
     18        self.createdDocs = []    # array to store paths to atoms created - in order to then delete them 
     19        self.utils = tu(tc.EXIST_DBCONFIG_FILE) 
     20        self.c=myConfig(tc.NDG_CONFIG_FILE) 
     21 
     22         
     23    def tearDown(self): 
     24        for path  in self.createdDocs: 
     25            # delete the test file, in case it has been used in a test 
     26            self.utils.deleteDoc(path) 
     27 
     28 
     29    def testDE(self): 
     30        self.createdDocs.append(self.utils.createOldMolesDoc()) 
     31        self.client = SearchClient(dbHostName = tc.EXIST_DB,  
     32                                   configFileName = tc.EXIST_DBCONFIG_FILE) 
     33        doc = self.client.getNDGDoc(tc.VALID_PROVIDER_ID, no.MOLES_DOC_TYPE,  
     34                                    tc.VALID_MOLES_ID, 
     35                                    targetCollection = dc.MOLES_COLLECTION_PATH) 
     36        xml = ET.fromstring(doc) 
     37        x=stubB(xml,self.c) 
     38        # NB, should extend these checks to cover all loaded info 
     39        self.assertEquals([-90.0, -180.0, 180.0, 90.0], x.bbox.boxes[0]) 
     40        self.assertEquals('http://badc.nerc.ac.uk/graphics/logos/small/gostaglb.gif', 
     41                          x.logos[0][1]) 
     42        self.assertTrue(x.parameters.has_key('ATMOSPHERE')) 
  • ndgCommon/trunk/ndg/common/unittests/testconstants.py

    r4977 r4991  
    3939TEST_FILE_PATH = TEST_COLLECTION_PATH + '/' + TEST_FILE_NAME 
    4040 
    41 EXIST_DB = 'chinook.badc.rl.ac.uk'#'localhost' 
     41EXIST_DB = 'localhost'#'chinook.badc.rl.ac.uk' 
    4242PG_DBCONFIG_FILE = TEST_DATA_DIR + 'pg.config' 
    4343EXIST_DBCONFIG_FILE = TEST_DATA_DIR + 'exist.config' 
     
    7171VALID_RETRIEVE_URL = 'http://ndgbeta.badc.rl.ac.uk/retrieve/' + VALID_NDG_URL 
    7272INVALID_URL = 'http://invalid.blah.com' 
     73VALID_URL = 'http://www.google.co.uk' 
    7374VALID_DISCOVERY_URL2 = 'http://ndgbeta.badc.rl.ac.uk/view/badc.nerc.ac.uk__ATOM__famous_control_month_test_file' 
    7475 
  • ndgCommon/trunk/ndg/common/unittests/testutils.py

    r4937 r4991  
    4848        path = dc.MOLES_COLLECTION_PATH + tc.GRANULITE_PROVIDER_ID 
    4949        self.ac.createDoc(xml, path, fileName) 
    50         return path 
     50        return path + '/' + fileName 
Note: See TracChangeset for help on using the changeset viewer.