Changeset 863:709444969f11

Show
Ignore:
Timestamp:
03/10/10 18:30:43 (6 months ago)
Author:
johnbywater
Branch:
default
Message:

Fixed up licenses checks in functional/test_package.py (all tests are passing again here).

Issues still outstanding:

- redo commented licenses asserts in functional/test_rest
- create mapper from old license names to new license ids
- make migration script switch license_id on all packages
- graceful degredation for missing licenses (package has a license_id which doesn't exist for some reason)
- make license_id revisioned?

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • ckan/tests/functional/test_package.py

    r856 r863  
    2727            self.check_named_element(main_div, 'tr', *values) 
    2828        assert params['notes'] in main_div, main_div_str 
    29         license_str = str(params['license']) 
    30         assert license_str in main_div, main_div_str 
     29        license = model.Package.get_license_register()[params['license_id']] 
     30        assert license.title in main_div, (license.title, main_div_str) 
    3131        tag_names = [tag.lower() for tag in params['tags']] 
    3232        self.check_named_element(main_div, 'ul', *tag_names) 
     
    5252                self.check_named_element(main_div, 'tr', '!' + value) 
    5353 
    54          
    5554    def _check_preview(self, res, **params): 
    5655        preview =  str(res)[str(res).find('<div id="preview"'):str(res).find('<div id="footer">')] 
     
    6463                resource = [resource] 
    6564            self.check_named_element(preview, 'tr', resource[0], resource[1], resource[2], resource[3]) 
    66         assert str(params['notes']) in preview, preview 
    67         #if isinstance(params['license'], model.License): 
    68         #    license_str = str(params['license'].name) 
    69         #elif isinstance(params['license'], (str, unicode)): 
    70         #    license_str = str(params['license']) 
    71         #assert license_str in preview, preview 
     65        preview_ascii = repr(preview) 
     66        assert str(params['notes']) in preview_ascii, preview_ascii 
     67        license = model.Package.get_license_register()[params['license_id']] 
     68        assert license.title in preview_ascii, (license.title, preview_ascii) 
    7269        tag_names = [str(tag.lower()) for tag in params['tags']] 
    7370        self.check_named_element(preview, 'ul', *tag_names) 
     
    106103                yield(res_index, values) 
    107104 
    108  
    109105    def check_form_filled_correctly(self, res, **params): 
    110106        if params.has_key('pkg'): 
    111107            for key, value in params['pkg'].as_dict().items(): 
     108                if key == 'license': 
     109                    key = 'license_id' 
    112110                params[key] = value 
    113111        prefix = 'Package-%s-' % params['id'] 
     
    120118            self.check_tag(main_res, '%sresources-%i-%s' % (prefix, res_index, res_field), expected_value) 
    121119        self.check_tag_and_data(main_res, prefix+'notes', params['notes']) 
    122         #if isinstance(params['license'], model.License): 
    123         #    license_ = params['license'].name 
    124         #else: 
    125         #    license_ = params['license'] 
    126         #self.check_tag_and_data(main_res, 'selected', license_) 
     120        self.check_tag_and_data(main_res, 'selected', params['license_id']) 
    127121        if isinstance(params['tags'], (str, unicode)): 
    128122            tags = params['tags'].split() 
     
    319313        newurl = u'http://www.editpkgnewurl.com' 
    320314        new_download_url = newurl + u'/download/' 
    321         #newlicense = u'Non-OKD Compliant::Other' 
    322         #newlicenseid = model.License.by_name(newlicense).id 
     315        newlicense_id = u'cc-by' 
    323316        newversion = u'0.9b' 
    324317        fv = self.res.forms[0] 
     
    328321        fv[prefix + 'url'] =  newurl 
    329322        fv[prefix + 'resources-0-url'] =  new_download_url 
    330         #fv[prefix + 'license_id'] =  newlicenseid 
     323        fv[prefix + 'license_id'] =  newlicense_id 
    331324        fv[prefix + 'version'] = newversion 
    332325        res = fv.submit('commit') 
     
    342335        assert pkg.resources[0].url == new_download_url 
    343336        assert pkg.version == newversion 
    344         #assert newlicense == pkg.license.name 
     337        assert newlicense_id == pkg.license.id 
    345338 
    346339    def test_edit_2_not_groups(self): 
     
    448441        pkg.tags = [t1, t2] 
    449442        pkg.state = model.State.DELETED 
    450         #pkg.license = model.License.by_name(u'OKD Compliant::Other') 
     443        pkg.license_id = u'other-open' 
    451444        extras = {'key1':'value1', 'key2':'value2', 'key3':'value3'} 
    452445        for key, value in extras.items(): 
    453446            pkg.extras[unicode(key)] = unicode(value) 
    454         for obj in [pkg, t1, t2, pr1, pr2]:             
     447        for obj in [pkg, t1, t2, pr1, pr2]: 
    455448            model.Session.add(obj) 
    456449        model.repo.commit_and_remove() 
     
    477470        notes = u'Very important' 
    478471        license_id = u'agpl-v3' 
    479         #license = model.Session.query(model.License).get(license_id) 
    480472        state = model.State.ACTIVE 
    481473        tags = (u'tag1', u'tag2', u'tag3') 
     
    495487                fv[prefix+'resources-%s-%s' % (res_index, res_field)] = resource[field_index] 
    496488        fv[prefix+'notes'] = notes 
    497         #fv[prefix+'license_id'] = license_id 
     489        fv[prefix+'license_id'] = license_id 
    498490        fv[prefix+'tags'] = tags_txt 
    499491        fv[prefix+'state'] = state 
     
    514506                            url=url, 
    515507                            download_url='', 
    516                             resources=resources, notes=notes, #license=license, 
     508                            resources=resources, notes=notes, license_id=license_id, 
    517509                            tags=tags, extras=current_extras, 
    518510                            deleted_extras=deleted_extras, 
     
    523515                                         title=title, version=version, 
    524516                                         url=url, resources=resources, 
    525                                          notes=notes, #license=license, 
     517                                         notes=notes, license_id=license_id, 
    526518                                         tags=tags, extras=current_extras, 
    527519                                         deleted_extras=deleted_extras, 
     
    539531                                 version=version, url=url, 
    540532                                 resources=resources, notes=notes, 
    541                                  #license=license,  
     533                                 license_id=license_id,  
    542534                                 tags=tags, 
    543535                                 extras=current_extras, 
     
    556548                assert getattr(pkg.resources[res_index], res_field) == resource[field_index] 
    557549        assert pkg.notes == notes 
    558         #assert pkg.license_id == license_id 
     550        assert pkg.license.id == license_id 
    559551        saved_tagnames = [str(tag.name) for tag in pkg.tags] 
    560552        saved_tagnames.sort() 
     
    684676        download_url = u'http://something.com/somewhere-else.zip' 
    685677        notes = u'Very important' 
    686         #license_id = 4 
    687         #license = u'OKD Compliant::Creative Commons CCZero' 
     678        license_id = u'agpl-v3' 
    688679        tags = (u'tag1', u'tag2', u'tag3', u'SomeCaps') 
    689680        tags_txt = u' '.join(tags) 
     
    703694        fv[prefix+'resources-0-description'] = u'description escape: & umlaut: \xfc quote "'.encode('utf8') 
    704695        fv[prefix+'notes'] = notes 
    705         #fv[prefix+'license_id'] = license_id 
     696        fv[prefix+'license_id'] = license_id 
    706697        fv[prefix+'tags'] = tags_txt 
    707698        for i, extra in enumerate(extras.items()): 
     
    718709                            url=url, 
    719710                            resources=resources_escaped, notes=notes, 
    720                             #license=license, 
     711                            license_id=license_id, 
    721712                            tags=tags, extras=extras.items(), 
    722713                            ) 
     
    726717                                         title=title, version=version, 
    727718                                         url=url, resources=[download_url], 
    728                                          notes=notes, #license=license, 
     719                                         notes=notes, license_id=license_id, 
    729720                                         tags=[tag.lower() for tag in tags], 
    730721                                         extras=extras, 
     
    744735                                 version=version, url=url, 
    745736                                 resources=[download_url], notes=notes, 
    746                                  #license=license,  
     737                                 license_id=license_id,  
    747738                                 tags=tags, 
    748739                                 extras=extras, 
     
    758749        assert pkg.resources[0].url == download_url 
    759750        assert pkg.notes == notes 
    760         #assert pkg.license_id == license_id 
     751        assert pkg.license.id == license_id 
    761752        saved_tagnames = [str(tag.name) for tag in pkg.tags] 
    762753        saved_tagnames.sort() 

0.9.0.3 © 2008-2010 agile42 all rights reserved (this page was served in: 0.583243 sec.)