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&nbsp;\\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>'&lt;MyObject&gt;'</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>['&lt;MyObject1&gt;', '&lt;MyObject2&gt;']</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, '', '&lt;MyObject&gt;', {}]] ]</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, '', '&lt;MyObject&gt;', {}]] ]</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&nbsp;Dictionary</td><td>{'one': 1, 'true': True}</td><td></td></tr><tr><td></td><td>Return Value Should Be</td><td>Return Empty&nbsp;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&nbsp;Dictionary&nbsp;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': '&lt;MyObject1&gt;', '&lt;MyObject2&gt;': '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>&nbsp; '2': {'A': {'1': ''},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; 'B': {'&lt;MyObject&gt;': {}}} }</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&nbsp;\\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>'&lt;MyObject&gt;'</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>['&lt;MyObject1&gt;', '&lt;MyObject2&gt;']</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, '', '&lt;MyObject&gt;', {}]] ]</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, '', '&lt;MyObject&gt;', {}]] ]</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&nbsp;Dictionary</td><td>{'one': 1, 'true': True}</td><td></td></tr><tr><td></td><td>Return Value Should Be</td><td>Return Empty&nbsp;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&nbsp;Dictionary&nbsp;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': '&lt;MyObject1&gt;', '&lt;MyObject2&gt;': '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>&nbsp; '2': {'A': {'n': ''},<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; 'B': {'o': '&lt;MyObject&gt;', '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>

Reply via email to