Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
admin
/
installer
/
css
/
sass
/
sym404
/
root
/
usr
/
share
/
doc
/
python3-pycurl
/
tests
:
curl_object_test.py
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
#! /usr/bin/env python # -*- coding: utf-8 -*- # vi:ts=4:et import pycurl import unittest import nose.tools class ExplicitConstructionCurlObjectTest(unittest.TestCase): def test_close(self): c = pycurl.Curl() c.close() def test_close_twice(self): c = pycurl.Curl() c.close() c.close() # positional arguments are rejected @nose.tools.raises(TypeError) def test_positional_arguments(self): pycurl.Curl(1) # keyword arguments are rejected @nose.tools.raises(TypeError) def test_keyword_arguments(self): pycurl.Curl(a=1) class CurlObjectTest(unittest.TestCase): def setUp(self): self.curl = pycurl.Curl() def tearDown(self): self.curl.close() def test_set_attribute_curl(self): self.instantiate_and_check(self.check_set_attribute, 'Curl') def test_get_attribute_curl(self): self.instantiate_and_check(self.check_get_attribute, 'Curl') def test_get_missing_attribute_curl(self): self.instantiate_and_check(self.check_get_missing_attribute, 'Curl') def test_delete_attribute_curl(self): self.instantiate_and_check(self.check_delete_attribute, 'Curl') def test_delete_missing_attribute_curl(self): self.instantiate_and_check(self.check_delete_missing_attribute, 'Curl') def test_set_attribute_multi(self): self.instantiate_and_check(self.check_set_attribute, 'CurlMulti') def test_get_attribute_multi(self): self.instantiate_and_check(self.check_get_attribute, 'CurlMulti') def test_get_missing_attribute_curl_multi(self): self.instantiate_and_check(self.check_get_missing_attribute, 'CurlMulti') def test_delete_attribute_multi(self): self.instantiate_and_check(self.check_delete_attribute, 'CurlMulti') def test_delete_missing_attribute_curl_multi(self): self.instantiate_and_check(self.check_delete_missing_attribute, 'CurlMulti') def test_set_attribute_share(self): self.instantiate_and_check(self.check_set_attribute, 'CurlShare') def test_get_attribute_share(self): self.instantiate_and_check(self.check_get_attribute, 'CurlShare') def test_get_missing_attribute_curl_share(self): self.instantiate_and_check(self.check_get_missing_attribute, 'CurlShare') def test_delete_attribute_share(self): self.instantiate_and_check(self.check_delete_attribute, 'CurlShare') def test_delete_missing_attribute_curl_share(self): self.instantiate_and_check(self.check_delete_missing_attribute, 'CurlShare') def instantiate_and_check(self, fn, cls_name): cls = getattr(pycurl, cls_name) instance = cls() try: fn(instance) finally: instance.close() def check_set_attribute(self, pycurl_obj): assert not hasattr(pycurl_obj, 'attr') pycurl_obj.attr = 1 assert hasattr(pycurl_obj, 'attr') def check_get_attribute(self, pycurl_obj): assert not hasattr(pycurl_obj, 'attr') pycurl_obj.attr = 1 self.assertEqual(1, pycurl_obj.attr) def check_get_missing_attribute(self, pycurl_obj): try: getattr(pycurl_obj, 'doesnotexist') self.fail('Expected an AttributeError exception to be raised') except AttributeError: pass def check_delete_attribute(self, pycurl_obj): assert not hasattr(pycurl_obj, 'attr') pycurl_obj.attr = 1 self.assertEqual(1, pycurl_obj.attr) assert hasattr(pycurl_obj, 'attr') del pycurl_obj.attr assert not hasattr(pycurl_obj, 'attr') def check_delete_missing_attribute(self, pycurl_obj): try: del pycurl_obj.doesnotexist self.fail('Expected an AttributeError exception to be raised') except AttributeError: pass def test_modify_attribute_curl(self): self.check_modify_attribute(pycurl.Curl, 'READFUNC_PAUSE') def test_modify_attribute_multi(self): self.check_modify_attribute(pycurl.CurlMulti, 'E_MULTI_OK') def test_modify_attribute_share(self): self.check_modify_attribute(pycurl.CurlShare, 'SH_SHARE') def check_modify_attribute(self, cls, name): obj1 = cls() obj2 = cls() old_value = getattr(obj1, name) self.assertNotEqual('helloworld', old_value) # value should be identical to pycurl global self.assertEqual(old_value, getattr(pycurl, name)) setattr(obj1, name, 'helloworld') self.assertEqual('helloworld', getattr(obj1, name)) # change does not affect other existing objects self.assertEqual(old_value, getattr(obj2, name)) # change does not affect objects created later obj3 = cls() self.assertEqual(old_value, getattr(obj3, name))