Author: laukpe
Date: Mon Sep 22 00:00:20 2008
New Revision: 783
Modified:
trunk/proto/remote/python/examplelibrary.py
trunk/proto/remote/ruby/examplelibrary.rb
trunk/proto/remote/test/arguments.py
trunk/proto/remote/test/return_values.html
Log:
tests for argument types in ruby, simpler dict in tests
Modified: trunk/proto/remote/python/examplelibrary.py
==============================================================================
--- trunk/proto/remote/python/examplelibrary.py (original)
+++ trunk/proto/remote/python/examplelibrary.py Mon Sep 22 00:00:20 2008
@@ -120,7 +120,7 @@
def nested_dictionary_as_argument(self, arg):
exp = { '1': {'True': False},
- '2': {'A': {'1': ''}, 'B': {'<MyObject>': {}}} }
+ '2': {'A': {'n': ''}, 'B': {'o': '<MyObject>', 'e': {}}} }
self._should_be_equal(arg, exp)
def _should_be_equal(self, arg, exp):
@@ -206,7 +206,7 @@
def return_nested_dictionary(self):
return { 1: {True: False},
- 2: {'A': {1: None}, 'B': {MyObject(): {}}} }
+ 2: {'A': {'n': None}, 'B': {'o': MyObject(), 'e': {}}} }
# Not keywords
Modified: trunk/proto/remote/ruby/examplelibrary.rb
==============================================================================
--- trunk/proto/remote/ruby/examplelibrary.rb (original)
+++ trunk/proto/remote/ruby/examplelibrary.rb Mon Sep 22 00:00:20 2008
@@ -48,96 +48,222 @@
args.join(' ')
end
- # Argument types (TODO)
+ # Argument types
- def argument_should_be_string(arg)
- argument_type_should_be(arg, String)
+ def string_as_argument(arg)
+ should_be_equal(arg, return_string)
end
- def argument_should_be_integer(arg)
- argument_type_should_be(arg, Fixnum)
+ def unicode_string_as_argument(arg)
+ should_be_equal(arg, return_unicode_string)
end
- def argument_should_be_float(arg)
- argument_type_should_be(arg, Float)
+ def empty_string_as_argument(arg)
+ should_be_equal(arg, '')
end
- def argument_should_be_boolean(arg)
- argument_type_should_be(arg, TrueClass)
+ def integer_as_argument(arg)
+ should_be_equal(arg, return_integer)
end
-
- def argument_type_should_be(arg, type)
- if not arg.class == type
- raise Exception, 'Argument type should be '+ type.to_s() +' but
was ' + arg.class.to_s()
- end
+
+ def negative_integer_as_argument(arg)
+ should_be_equal(arg, return_negative_integer)
+ end
+
+ def float_as_argument(arg)
+ should_be_equal(arg, return_float)
+ end
+
+ def negative_float_as_argument(arg)
+ should_be_equal(arg, return_negative_float)
+ end
+
+ def zero_as_argument(arg)
+ should_be_equal(arg, 0)
+ end
+
+ def boolean_true_as_argument(arg)
+ should_be_equal(arg, true)
+ end
+
+ def boolean_false_as_argument(arg)
+ should_be_equal(arg, false)
+ end
+
+ def none_as_argument(arg)
+ should_be_equal(arg, '')
+ end
+
+ def object_as_argument(arg)
+ should_be_equal(arg, '<MyObject>')
+ end
+
+ def list_as_argument(arg)
+ should_be_equal(arg, return_list)
+ end
+
+ def empty_list_as_argument(arg)
+ should_be_equal(arg, [])
+ end
+
+ def list_containing_none_as_argument(arg)
+ should_be_equal(arg, [''])
+ end
+
+ def list_containing_objects_as_argument(arg)
+ should_be_equal(arg, ['<MyObject1>', '<MyObject2>'])
+ end
+
+ def nested_list_as_argument(arg)
+ exp = [ [true, false], [[1, '', '<MyObject>', {}]] ]
+ should_be_equal(arg, exp)
+ end
+
+ def dictionary_as_argument(arg)
+ should_be_equal(arg, return_dictionary)
+ end
+
+ def empty_dictionary_as_argument(arg)
+ should_be_equal(arg, {})
+ end
+
+ def dictionary_with_non_string_keys_as_argument(arg)
+ should_be_equal(arg, {'1'=>2, 'False'=>true})
+ end
+
+ def dictionary_containing_none_as_argument(arg)
+ should_be_equal(arg, {'As value'=>'', ''=>'As key'})
+ end
+
+ def dictionary_containing_objects_as_argument(arg)
+ should_be_equal(arg, {'As value'=>'<MyObject1>', '<MyObject2>'=>'As
key'})
+ end
+
+ def nested_dictionary_as_argument(arg)
+ exp = { '1'=>{'True'=>false},
+ '2'=>{'A'=>{'n'=>''}, 'B'=>{'o'=>'<MyObject>', 'e'=>{}}} }
+ should_be_equal(arg, exp)
end
# Return values
- def return_string()
+ def return_string
return 'Hello, world!'
end
- def return_empty_string()
+ def return_unicode_string
+ return 'TODO'
+ end
+
+ def return_empty_string
return ''
end
- def return_integer()
+ def return_integer
return 42
end
- def return_negativeinteger()
+ def return_negative_integer
return -1
end
- def return_float()
+ def return_float
return 3.14
end
- def return_negative_float()
+ def return_negative_float
return -0.5
end
- def return_zero()
+ def return_zero
return 0
end
- def return_boolean_true()
+ def return_boolean_true
return true
end
- def return_boolean_false()
+ def return_boolean_false
return false
end
- def return_nothing()
+ def return_nothing
end
- def return_object()
+ def return_object
return MyObject.new
end
- def return_list()
+ def return_list
['One', -2, false]
end
- def return_empty_list()
+ def return_empty_list
[]
end
- def return_list_containing_none()
+ def return_list_containing_none
[nil]
end
- def return_list_containing_objects()
+ def return_list_containing_objects
[MyObject.new(1), MyObject.new(2)]
end
+ def return_nested_list
+ return [ [true, false], [[1, nil, MyObject.new, {}]] ]
+ end
+
+ def return_tuple
+ #return (1, 'two', true)
+ end
+
+ def return_empty_tuple
+ #return ()
+ end
+
+ def return_nested_tuple
+ #return ( (true, false), [(1, nil, MyObject.new, {})] )
+ end
+
+ def return_dictionary
+ return {'one'=>1, 'true'=>true}
+ end
+
+ def return_empty_dictionary
+ return {}
+ end
+
+ def return_dictionary_with_non_string_keys
+ return {1=>2, false=>true}
+ end
+
+ def return_dictionary_containing_none
+ return {'As value'=>nil, nil=>'As key'}
+ end
+
+ def return_dictionary_containing_objects
+ return {'As value'=>MyObject.new(1), MyObject.new(2)=>'As key'}
+ end
+
+ def return_nested_dictionary
+# return { 1=>{true=>false},
+# 2=>{'A'=>{'n'=>nil}, 'B'=>{'o'=>MyObject.new, 'e'=>{}}} }
+ end
+
+ @@attribute = "Not keyword"
private
+
def private_method
end
+ def should_be_equal(arg, exp)
+ if arg != exp
+ raise "#{arg} != #{exp}"
+ end
+ end
+
end
@@ -145,7 +271,7 @@
def initialize(index='')
@index = index
end
- def to_s()
+ def to_s
return "<[EMAIL PROTECTED]>"
end
end
Modified: trunk/proto/remote/test/arguments.py
==============================================================================
--- trunk/proto/remote/test/arguments.py (original)
+++ trunk/proto/remote/test/arguments.py Mon Sep 22 00:00:20 2008
@@ -10,5 +10,5 @@
NESTED_TUPLE = ( (True, False), [(1, None, MyObject(), {})] )
DICT_WITH_OBJECTS = {'As value': MyObject(1), MyObject(2): 'As key'}
NESTED_DICT = { 1: {True: False},
- 2: {'A': {1: None},
- 'B': {MyObject(): {}}} }
+ 2: {'A': {'n': None},
+ 'B': {'o': MyObject(), 'e': {}}} }
Modified: trunk/proto/remote/test/return_values.html
==============================================================================
--- trunk/proto/remote/test/return_values.html (original)
+++ trunk/proto/remote/test/return_values.html Mon Sep 22 00:00:20 2008
@@ -181,7 +181,7 @@
- <tr><td>Return String</td><td>Return Value Should Be</td><td>Return
String</td><td>'Hello,
world!'</td><td></td></tr><tr><td><br></td><td></td><td></td><td></td><td></td></tr><tr><td>Return
Unicode String</td><td>Return Value Should Be</td><td>Return Unicode
String</td><td>u'Hyv\\xE4\\xE4 \\xFC\\xF6t\\xE4!'</td><td></td></tr><tr><td>Return
Empty String</td><td>Return Value Should Be</td><td>Return Empty
String</td><td>''</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Return
Integer</td><td>Return Value Should Be</td><td>Return
Integer</td><td>42</td><td></td></tr><tr><td><br></td><td>Return Value
Should Be</td><td>Return Negative
Integer</td><td>-1</td><td></td></tr><tr><td>Return Float</td><td>Return
Value Should Be</td><td>Return
Float</td><td>3.14<br></td><td></td></tr><tr><td></td><td>Return Value
Should Be</td><td>Return Negative
Float</td><td>-0.5</td><td></td></tr><tr><td>Return Zero</td><td>Return
Value Should Be</td><td>Return
Zero</td><td>0</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Return
Boolean</td><td>Return Value Should Be</td><td>Return Boolean
True</td><td>True</td><td></td></tr><tr><td><br></td><td>Return Value
Should Be</td><td>Return Boolean
False</td><td>False</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Return
Nothing</td><td>[Documentation]</td><td>None/nil/null is not supported by
all XML-RPC versions</td><td>and thus it is converted to an empty
string</td><td></td></tr><tr><td></td><td>Return Value Should
Be</td><td>Return
Nothing</td><td>''</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Return
Arbitrary Object</td><td>[Documentation]</td><td>Arbitraty objects cannot
be transferred over XML-RPC </td><td>and thus only their string
presentation is returned</td><td></td></tr><tr><td><br></td><td>Return
Value Should Be</td><td>Return
Object</td><td>'<MyObject>'</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Return
List</td><td>Return Value Should Be</td><td>Return List</td><td>['One', -2,
False]</td><td></td></tr><tr><td><br></td><td>Return Value Should
Be</td><td>Return Empty List</td><td>[]</td><td></td></tr><tr><td>Return
List Containing None</td><td>Return Value Should Be</td><td>Return List
Containing None</td><td>['']</td><td></td></tr><tr><td>Return List
Containing Arbitrary Objects</td><td>Return Value Should Be</td><td>Return
List Containing
Objects</td><td>['<MyObject1>', '<MyObject2>']</td><td></td></tr><tr><td>Return
Nested List</td><td>Return Value Should Be</td><td>Return Nested
List</td><td>[ [True, False], [[1, '', '<MyObject>', {}]]
]</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Return
Tuple</td><td>[Documentation]</td><td>Tuples are converted to
lists</td><td></td><td></td></tr><tr><td></td><td>Return Value Should
Be</td><td>Return Tuple</td><td>[1, 'two',
True]</td><td></td></tr><tr><td><br></td><td>Return Value Should
Be</td><td>Return Empty
Tuple</td><td>[]</td><td></td></tr><tr><td></td><td>Return Value Should
Be</td><td>Return Nested Tuple</td><td>[ [True, False],
[[1, '', '<MyObject>', {}]]
]</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Return
Dictionary</td><td>Return Value Should
Be</td><td>Return Dictionary</td><td>{'one': 1, 'true':
True}</td><td></td></tr><tr><td></td><td>Return Value Should
Be</td><td>Return
Empty Dictionary</td><td>{}</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Return
Dictionary With Non-String Keys</td><td>[Documentation]</td><td>XML-RPC
supports only strings as keys so must convert them
</td><td></td><td></td></tr><tr><td></td><td>Return Value Should
Be</td><td>Return Dictionary With Non String Keys</td><td>{'1':
2, 'False':
True}</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Return
Dictionary Containing None</td><td>Return Value Should Be</td><td>Return
Dictionary Containing None</td><td>{'As value': '', '': 'As
key'}</td><td></td></tr><tr><td>Return Dictionary Containing
Objects</td><td>Return Value Should Be</td><td>Return Dictionary Containing
Objects</td><td>{'As value': '<MyObject1>', '<MyObject2>': 'As
key'}</td><td></td></tr><tr><td>Return Nested Dictionary</td><td>Return
Value Should Be</td><td>Return Nested Dictionary</td><td>{'1': {'True':
False},<br> '2': {'A': {'1': ''},<br>
'B': {'<MyObject>': {}}}
}</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr>
+ <tr><td>Return String</td><td>Return Value Should Be</td><td>Return
String</td><td>'Hello,
world!'</td><td></td></tr><tr><td><br></td><td></td><td></td><td></td><td></td></tr><tr><td>Return
Unicode String</td><td>Return Value Should Be</td><td>Return Unicode
String</td><td>u'Hyv\\xE4\\xE4 \\xFC\\xF6t\\xE4!'</td><td></td></tr><tr><td>Return
Empty String</td><td>Return Value Should Be</td><td>Return Empty
String</td><td>''</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Return
Integer</td><td>Return Value Should Be</td><td>Return
Integer</td><td>42</td><td></td></tr><tr><td><br></td><td>Return Value
Should Be</td><td>Return Negative
Integer</td><td>-1</td><td></td></tr><tr><td>Return Float</td><td>Return
Value Should Be</td><td>Return
Float</td><td>3.14<br></td><td></td></tr><tr><td></td><td>Return Value
Should Be</td><td>Return Negative
Float</td><td>-0.5</td><td></td></tr><tr><td>Return Zero</td><td>Return
Value Should Be</td><td>Return
Zero</td><td>0</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Return
Boolean</td><td>Return Value Should Be</td><td>Return Boolean
True</td><td>True</td><td></td></tr><tr><td><br></td><td>Return Value
Should Be</td><td>Return Boolean
False</td><td>False</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Return
Nothing</td><td>[Documentation]</td><td>None/nil/null is not supported by
all XML-RPC versions</td><td>and thus it is converted to an empty
string</td><td></td></tr><tr><td></td><td>Return Value Should
Be</td><td>Return
Nothing</td><td>''</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Return
Arbitrary Object</td><td>[Documentation]</td><td>Arbitraty objects cannot
be transferred over XML-RPC </td><td>and thus only their string
presentation is returned</td><td></td></tr><tr><td><br></td><td>Return
Value Should Be</td><td>Return
Object</td><td>'<MyObject>'</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Return
List</td><td>Return Value Should Be</td><td>Return List</td><td>['One', -2,
False]</td><td></td></tr><tr><td><br></td><td>Return Value Should
Be</td><td>Return Empty List</td><td>[]</td><td></td></tr><tr><td>Return
List Containing None</td><td>Return Value Should Be</td><td>Return List
Containing None</td><td>['']</td><td></td></tr><tr><td>Return List
Containing Arbitrary Objects</td><td>Return Value Should Be</td><td>Return
List Containing
Objects</td><td>['<MyObject1>', '<MyObject2>']</td><td></td></tr><tr><td>Return
Nested List</td><td>Return Value Should Be</td><td>Return Nested
List</td><td>[ [True, False], [[1, '', '<MyObject>', {}]]
]</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Return
Tuple</td><td>[Documentation]</td><td>Tuples are converted to
lists</td><td></td><td></td></tr><tr><td></td><td>Return Value Should
Be</td><td>Return Tuple</td><td>[1, 'two',
True]</td><td></td></tr><tr><td><br></td><td>Return Value Should
Be</td><td>Return Empty
Tuple</td><td>[]</td><td></td></tr><tr><td></td><td>Return Value Should
Be</td><td>Return Nested Tuple</td><td>[ [True, False],
[[1, '', '<MyObject>', {}]]
]</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Return
Dictionary</td><td>Return Value Should
Be</td><td>Return Dictionary</td><td>{'one': 1, 'true':
True}</td><td></td></tr><tr><td></td><td>Return Value Should
Be</td><td>Return
Empty Dictionary</td><td>{}</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Return
Dictionary With Non-String Keys</td><td>[Documentation]</td><td>XML-RPC
supports only strings as keys so must convert them
</td><td></td><td></td></tr><tr><td></td><td>Return Value Should
Be</td><td>Return Dictionary With Non String Keys</td><td>{'1':
2, 'False':
True}</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Return
Dictionary Containing None</td><td>Return Value Should Be</td><td>Return
Dictionary Containing None</td><td>{'As value': '', '': 'As
key'}</td><td></td></tr><tr><td>Return Dictionary Containing
Objects</td><td>Return Value Should Be</td><td>Return Dictionary Containing
Objects</td><td>{'As value': '<MyObject1>', '<MyObject2>': 'As
key'}</td><td></td></tr><tr><td>Return Nested Dictionary</td><td>Return
Value Should Be</td><td>Return Nested Dictionary</td><td>{'1': {'True':
False},<br> '2': {'A': {'n': ''},<br>
'B': {'o': '<MyObject>', 'e': {}}}
}</td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td><td></td></tr>
</tbody>
</table>