Esempio n. 1
0
    def test_urlformat(self):
        formats = ['http://demo.ckan.org/',
                   'http://demo.ckan.org',
                   'http://demo.ckan.org/api',
                   'http://demo.ckan.org/api/']
        for url in formats:
            store = CKANStore(url)
            self.assertTrue(store.is_valid())

        # invalid URL
        store = CKANStore('http://google.com/')
        self.assertFalse(store.is_valid())
Esempio n. 2
0
    def test_urlformat(self):
        formats = [
            'http://demo.ckan.org/', 'http://demo.ckan.org',
            'http://demo.ckan.org/api', 'http://demo.ckan.org/api/'
        ]
        for url in formats:
            store = CKANStore(url)
            self.assertTrue(store.is_valid())

        # invalid URL
        store = CKANStore('http://google.com/')
        self.assertFalse(store.is_valid())
Esempio n. 3
0
 def setUp(self):
     if self._url is None:
         import nose
         raise nose.SkipTest("_url is blank")
     self.store = CKANStore(self._url)
Esempio n. 4
0
class CKANTestBase(tm.TestCase):

    _url = None
    # resource id to be used for resource test
    _resource = None
    # keyword used for search test
    _search = None

    _group = None

    # whether the site allows to search resource
    _allow_resouce = True

    def setUp(self):
        if self._url is None:
            import nose
            raise nose.SkipTest("_url is blank")
        self.store = CKANStore(self._url)

    def test_isvalid(self):
        self.assertTrue(self.store.is_valid())

    def test_search(self):
        result = self.store.search_package(self._search)
        self.assertTrue(len(result) > 0)
        self.assertTrue(isinstance(result[0], CKANPackage))

        if not self._allow_resouce:
            import nose
            raise nose.SkipTest(self._url +
                                " doesn't allow to search resource")

        result = self.store.search_resource('name:' + self._search)
        result_names = [r.name for r in result]
        self.assertTrue(len(result) > 0)
        for resource in result:
            self.assertTrue(isinstance(resource, CKANResource))
            self.assertTrue(resource.url is not None)

        result = self.store.search('name:' + self._search)
        result_names = [r.name for r in result]
        self.assertTrue(len(result) > 0)
        for resource in result:
            self.assertTrue(isinstance(resource, CKANResource))
            self.assertTrue(resource.url is not None)

    def test_packages(self):
        packages = self.store.packages
        self.assertTrue(len(packages) > 0)
        for package in packages:
            self.assertTrue(isinstance(package, CKANPackage))
            self.assertTrue(package.name is not None)

        # filter packages which has resources
        for package in packages:
            if len(package.resources) > 0:
                break

        # Some site doesn't return resources in xml
        # In this case, CKANPackage connect to retrieve its resources
        # To avoid long waiting time, only check 1st element
        resource = package.resources[0]
        self.assertTrue(isinstance(resource, CKANResource))
        self.assertTrue(resource.url is not None)

        got_resource = package.get(resource.id)
        self.assertEqual(got_resource.id, resource.id)

    def test_resource(self):
        if not self._allow_resouce:
            import nose
            raise nose.SkipTest(self._url +
                                " doesn't allow to access resource")

        resource = self.store.get_resource(self._resource)
        self.assertTrue(isinstance(resource, CKANResource))
        self.assertTrue(resource.id, self._resource)
        self.assertTrue(resource.url is not None)

    def test_groups(self):
        result = self.store.groups
        self.assertTrue(self._group in result)

        packages = self.store.get_packages_from_group(self._group)
        self.assertTrue(len(packages) > 0)
        for package in packages:
            self.assertTrue(isinstance(package, CKANPackage))
            self.assertTrue(package.name is not None)

        resource = packages[0].resources[0]
        self.assertTrue(isinstance(resource, CKANResource))
        self.assertTrue(resource.url is not None)

    def test_formats(self):
        raise NotImplementedError(
            "test_formats must be defined to check read method")
Esempio n. 5
0
 def setUp(self):
     if self._url is None:
         import nose
         raise nose.SkipTest("_url is blank")
     self.store = CKANStore(self._url)
Esempio n. 6
0
class CKANTestBase(tm.TestCase):

    _url = None
    # resource id to be used for resource test
    _resource = None
    # keyword used for search test
    _search = None

    _group = None

    # whether the site allows to search resource
    _allow_resouce = True

    def setUp(self):
        if self._url is None:
            import nose
            raise nose.SkipTest("_url is blank")
        self.store = CKANStore(self._url)

    def test_isvalid(self):
        self.assertTrue(self.store.is_valid())

    def test_search(self):
        result = self.store.search_package(self._search)
        self.assertTrue(len(result) > 0)
        self.assertTrue(isinstance(result[0], CKANPackage))

        if not self._allow_resouce:
            import nose
            raise nose.SkipTest(self._url + " doesn't allow to search resource")

        result = self.store.search_resource('name:' + self._search)
        result_names = [r.name for r in result]
        self.assertTrue(len(result) > 0)
        for resource in result:
            self.assertTrue(isinstance(resource, CKANResource))
            self.assertTrue(resource.url is not None)

        result = self.store.search('name:' + self._search)
        result_names = [r.name for r in result]
        self.assertTrue(len(result) > 0)
        for resource in result:
            self.assertTrue(isinstance(resource, CKANResource))
            self.assertTrue(resource.url is not None)

    def test_packages(self):
        packages = self.store.packages
        self.assertTrue(len(packages) > 0)
        for package in packages:
            self.assertTrue(isinstance(package, CKANPackage))
            self.assertTrue(package.name is not None)

        # filter packages which has resources
        for package in packages:
            if len(package.resources) > 0:
                break

        # Some site doesn't return resources in xml
        # In this case, CKANPackage connect to retrieve its resources
        # To avoid long waiting time, only check 1st element
        resource = package.resources[0]
        self.assertTrue(isinstance(resource, CKANResource))
        self.assertTrue(resource.url is not None)

        got_resource = package.get(resource.id)
        self.assertEqual(got_resource.id, resource.id)

    def test_resource(self):
        if not self._allow_resouce:
            import nose
            raise nose.SkipTest(self._url + " doesn't allow to access resource")

        resource = self.store.get_resource(self._resource)
        self.assertTrue(isinstance(resource, CKANResource))
        self.assertTrue(resource.id, self._resource)
        self.assertTrue(resource.url is not None)

    def test_groups(self):
        result = self.store.groups
        self.assertTrue(self._group in result)

        packages = self.store.get_packages_from_group(self._group)
        self.assertTrue(len(packages) > 0)
        for package in packages:
            self.assertTrue(isinstance(package, CKANPackage))
            self.assertTrue(package.name is not None)

        resource = packages[0].resources[0]
        self.assertTrue(isinstance(resource, CKANResource))
        self.assertTrue(resource.url is not None)

    def test_formats(self):
        raise NotImplementedError("test_formats must be defined to check read method")