mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-16 22:51:17 +07:00
125 lines
3.3 KiB
Python
125 lines
3.3 KiB
Python
'''
|
|
Created on Aug 22, 2011
|
|
|
|
@author: hussain.bohra
|
|
@author: fabioz
|
|
'''
|
|
|
|
import os
|
|
import sys
|
|
import unittest
|
|
|
|
#=======================================================================================================================
|
|
# Test
|
|
#=======================================================================================================================
|
|
class Test(unittest.TestCase):
|
|
"""Test cases to validate custom property implementation in pydevd
|
|
"""
|
|
|
|
def setUp(self, nused=None):
|
|
self.tempdir = os.path.join(os.path.dirname(os.path.dirname(__file__)))
|
|
sys.path.insert(0, self.tempdir)
|
|
from _pydevd_bundle import pydevd_traceproperty
|
|
self.old = pydevd_traceproperty.replace_builtin_property()
|
|
|
|
|
|
def tearDown(self, unused=None):
|
|
from _pydevd_bundle import pydevd_traceproperty
|
|
pydevd_traceproperty.replace_builtin_property(self.old)
|
|
sys.path.remove(self.tempdir)
|
|
|
|
|
|
def test_property(self):
|
|
"""Test case to validate custom property
|
|
"""
|
|
|
|
from _pydevd_bundle import pydevd_traceproperty
|
|
class TestProperty(object):
|
|
|
|
def __init__(self):
|
|
self._get = 0
|
|
self._set = 0
|
|
self._del = 0
|
|
|
|
def get_name(self):
|
|
self._get += 1
|
|
return self.__name
|
|
|
|
def set_name(self, value):
|
|
self._set += 1
|
|
self.__name = value
|
|
|
|
def del_name(self):
|
|
self._del += 1
|
|
del self.__name
|
|
name = property(get_name, set_name, del_name, "name's docstring")
|
|
self.assertEqual(name.__class__, pydevd_traceproperty.DebugProperty)
|
|
|
|
testObj = TestProperty()
|
|
self._check(testObj)
|
|
|
|
|
|
def test_property2(self):
|
|
"""Test case to validate custom property
|
|
"""
|
|
|
|
class TestProperty(object):
|
|
|
|
def __init__(self):
|
|
self._get = 0
|
|
self._set = 0
|
|
self._del = 0
|
|
|
|
def name(self):
|
|
self._get += 1
|
|
return self.__name
|
|
name = property(name)
|
|
|
|
def set_name(self, value):
|
|
self._set += 1
|
|
self.__name = value
|
|
name.setter(set_name)
|
|
|
|
def del_name(self):
|
|
self._del += 1
|
|
del self.__name
|
|
name.deleter(del_name)
|
|
|
|
testObj = TestProperty()
|
|
self._check(testObj)
|
|
|
|
|
|
def test_property3(self):
|
|
"""Test case to validate custom property
|
|
"""
|
|
|
|
class TestProperty(object):
|
|
|
|
def __init__(self):
|
|
self._name = 'foo'
|
|
|
|
def name(self):
|
|
return self._name
|
|
name = property(name)
|
|
|
|
testObj = TestProperty()
|
|
self.assertRaises(AttributeError, setattr, testObj, 'name', 'bar')
|
|
self.assertRaises(AttributeError, delattr, testObj, 'name')
|
|
|
|
|
|
def _check(self, testObj):
|
|
testObj.name = "Custom"
|
|
self.assertEqual(1, testObj._set)
|
|
|
|
self.assertEqual(testObj.name, "Custom")
|
|
self.assertEqual(1, testObj._get)
|
|
|
|
self.assertTrue(hasattr(testObj, 'name'))
|
|
del testObj.name
|
|
self.assertEqual(1, testObj._del)
|
|
|
|
self.assertTrue(not hasattr(testObj, 'name'))
|
|
testObj.name = "Custom2"
|
|
self.assertEqual(testObj.name, "Custom2")
|
|
|