File tree Expand file tree Collapse file tree 3 files changed +28
-0
lines changed Expand file tree Collapse file tree 3 files changed +28
-0
lines changed Original file line number Diff line number Diff line change @@ -58,6 +58,17 @@ def hasattr?(obj, name)
58
58
LibPython ::Helpers . hasattr? ( obj . __pyptr__ , name )
59
59
end
60
60
61
+ def same? ( left , right )
62
+ case left
63
+ when PyObjectWrapper
64
+ case right
65
+ when PyObjectWrapper
66
+ return left . __pyptr__ == right . __pyptr__
67
+ end
68
+ end
69
+ false
70
+ end
71
+
61
72
def import_module ( name )
62
73
LibPython ::Helpers . import_module ( name )
63
74
end
Original file line number Diff line number Diff line change 70
70
end
71
71
end
72
72
73
+ describe '.same?' do
74
+ let ( :simple_module ) { PyCall . import_module ( 'pycall.simple_module' ) }
75
+ let ( :simple_class ) { PyCall . import_module ( 'pycall.simple_class' ) . SimpleClass }
76
+
77
+ specify do
78
+ pyobj_1 = simple_class . new
79
+ expect ( PyCall . same? ( pyobj_1 , pyobj_1 ) ) . to eq ( true )
80
+ pyobj_2 = simple_module . identity ( pyobj_1 )
81
+ expect ( pyobj_2 ) . not_to be_equal ( pyobj_1 )
82
+ expect ( PyCall . same? ( pyobj_1 , pyobj_2 ) ) . to eq ( true )
83
+ expect ( PyCall . same? ( pyobj_1 , simple_class . new ) ) . to eq ( false )
84
+ end
85
+ end
86
+
73
87
describe '.import_module' do
74
88
subject { PyCall . import_module ( 'sys' ) }
75
89
Original file line number Diff line number Diff line change
1
+ def identity (x ):
2
+ return x
3
+
1
4
def double (x ):
2
5
return 2 * x
3
6
You can’t perform that action at this time.
0 commit comments