Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

#!/usr/bin/env python 

# 

# LSST Data Management System 

# Copyright 2016 LSST Corporation. 

# 

# This product includes software developed by the 

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

# 

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

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

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

# (at your option) any later version. 

# 

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

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

# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 

# GNU General Public License for more details. 

# 

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

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

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

# 

 

 

class TestObject(object): 

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

for equality (or inequality). 

""" 

 

def __init__(self, data): 

self.data = data 

 

def __eq__(self, other): 

return self.data == other.data 

 

def __ne__(self, other): 

return self.data != other.data 

 

def __lt__(self, other): 

return self.data < other.data 

 

def __le__(self, other): 

return self.data <= other.data 

 

def __gt__(self, other): 

return self.data > other.data 

 

def __ge__(self, other): 

return self.data >= other.data 

 

def __repr__(self): 

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

 

 

class TestObjectPair(object): 

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

""" 

 

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

self.objA = objA 

self.objB = objB 

self.usedInitSetter = True if objA and objB else False 

self.usedASetter = False 

self.usedBSetter = False 

 

@staticmethod 

def assembler(dataId, componentInfo, cls): 

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

 

@staticmethod 

def disassembler(obj, dataId, componentInfo): 

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

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

 

def __repr__(self): 

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

 

def set_a(self, obj): 

self.objA = obj 

self.usedASetter = True 

 

def set_b(self, obj): 

self.objB = obj 

self.usedBSetter = True 

 

def get_a(self): 

return self.objA 

 

def get_b(self): 

return self.objB 

 

 

class TestObjectCamelCaseSetter(object): 

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

def __init__(self): 

self._foo = None 

 

def setFoo(self, val): 

self._foo = val 

 

def getFoo(self): 

return self._foo 

 

 

class TestObjectUnderscoreSetter(object): 

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

def __init__(self): 

self._foo = None 

 

def set_foo(self, val): 

self._foo = val 

 

def get_foo(self): 

return self._foo