Coverage for python/lsst/daf/persistence/test/testObject.py: 55%

57 statements  

« prev     ^ index     » next       coverage.py v6.4.1, created at 2022-06-23 02:39 -0700

1#!/usr/bin/env python 

2# 

3# LSST Data Management System 

4# Copyright 2016 LSST Corporation. 

5# 

6# This product includes software developed by the 

7# LSST Project (http://www.lsst.org/). 

8# 

9# This program is free software: you can redistribute it and/or modify 

10# it under the terms of the GNU General Public License as published by 

11# the Free Software Foundation, either version 3 of the License, or 

12# (at your option) any later version. 

13# 

14# This program is distributed in the hope that it will be useful, 

15# but WITHOUT ANY WARRANTY; without even the implied warranty of 

16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 

17# GNU General Public License for more details. 

18# 

19# You should have received a copy of the LSST License Statement and 

20# the GNU General Public License along with this program. If not, 

21# see <http://www.lsstcorp.org/LegalNotices/>. 

22# 

23 

24 

25class TestObject: 

26 """A basic object for testing. Contains a data blob that can be compared with other TestObject instances 

27 for equality (or inequality). 

28 """ 

29 

30 def __init__(self, data): 

31 self.data = data 

32 

33 def __eq__(self, other): 

34 return self.data == other.data 

35 

36 def __ne__(self, other): 

37 return self.data != other.data 

38 

39 def __lt__(self, other): 

40 return self.data < other.data 

41 

42 def __le__(self, other): 

43 return self.data <= other.data 

44 

45 def __gt__(self, other): 

46 return self.data > other.data 

47 

48 def __ge__(self, other): 

49 return self.data >= other.data 

50 

51 def __repr__(self): 

52 return "TestObject(data=%r)" % self.data 

53 

54 

55class TestObjectPair: 

56 """An object for testing that contains 2 objects. 

57 """ 

58 

59 def __init__(self, objA=None, objB=None): 

60 self.objA = objA 

61 self.objB = objB 

62 self.usedInitSetter = True if objA and objB else False 

63 self.usedASetter = False 

64 self.usedBSetter = False 

65 

66 @staticmethod 

67 def assembler(dataId, componentInfo, cls): 

68 return cls(componentInfo['a'].obj, componentInfo['b'].obj) 

69 

70 @staticmethod 

71 def disassembler(obj, dataId, componentInfo): 

72 componentInfo['a'].obj = obj.objA 

73 componentInfo['b'].obj = obj.objB 

74 

75 def __repr__(self): 

76 return "TestObjectPair(objA=%r, objB=%r)" % (self.objA, self.objB) 

77 

78 def set_a(self, obj): 

79 self.objA = obj 

80 self.usedASetter = True 

81 

82 def set_b(self, obj): 

83 self.objB = obj 

84 self.usedBSetter = True 

85 

86 def get_a(self): 

87 return self.objA 

88 

89 def get_b(self): 

90 return self.objB 

91 

92 

93class TestObjectCamelCaseSetter: 

94 """A test object with camel case setter and getter e.g. `def setFoo...`""" 

95 def __init__(self): 

96 self._foo = None 

97 

98 def setFoo(self, val): 

99 self._foo = val 

100 

101 def getFoo(self): 

102 return self._foo 

103 

104 

105class TestObjectUnderscoreSetter: 

106 """A test object with lower case camel case setter and getter e.g. `def setFoo...`""" 

107 def __init__(self): 

108 self._foo = None 

109 

110 def set_foo(self, val): 

111 self._foo = val 

112 

113 def get_foo(self): 

114 return self._foo