File tree Expand file tree Collapse file tree 3 files changed +19
-3
lines changed
Expand file tree Collapse file tree 3 files changed +19
-3
lines changed Original file line number Diff line number Diff line change @@ -39,6 +39,13 @@ def loads(self, json_content):
3939
4040 @classmethod
4141 def __load (self , raw_resource ):
42+ def self_resource (func ):
43+ def wrapper (resource , raw_resource ):
44+ if resource == 'self' :
45+ resource = self
46+ return func (resource , raw_resource )
47+ return wrapper
48+
4249 def parse_date (string_date ):
4350 from datetime import datetime
4451 try :
@@ -47,12 +54,12 @@ def parse_date(string_date):
4754 date = None
4855 return date
4956
57+ @self_resource
5058 def parse_map (resource , raw_resource ):
51- if resource == 'self' :
52- return self .__load (raw_resource )
5359 if hasattr (raw_resource , 'items' ):
5460 return resource .__load (raw_resource )
5561
62+ @self_resource
5663 def parse_collection_map (resource , raw_resources ):
5764 # Dict of resources (Ex: Gist file)
5865 if hasattr (raw_resources , 'items' ):
Original file line number Diff line number Diff line change 1919)
2020github_return_nested = github_return .copy ()
2121github_return .update ({'self_nested' : github_return_nested })
22+ github_return .update ({'self_nested_list' : [github_return_nested ] * 2 })
23+ github_return .update ({'self_nested_dict' : dict (arg1 = github_return_nested )})
2224
2325
2426class TestResourceMapping (TestCase ):
@@ -53,6 +55,11 @@ def test_SELF_nested(self):
5355 self .assertIsInstance (self .r .list_collection [0 ], HasSimple )
5456 self .assertIsInstance (self .r .items_collections ['arg1' ], HasSimple )
5557
58+ def test_SELF_nested_in_collections (self ):
59+ self .assertIsInstance (self .r .self_nested_list [0 ], Nested )
60+ self .assertIsInstance (self .r .self_nested_dict ['arg1' ], Nested )
61+
62+
5663class TestRawResource (TestCase ):
5764 """ Litle obvious :P """
5865
Original file line number Diff line number Diff line change @@ -17,5 +17,7 @@ class Nested(Resource):
1717 _maps = {'simple' : Simple , 'self_nested' : 'self' }
1818 _collection_maps = {
1919 'list_collection' : HasSimple ,
20- 'items_collections' : HasSimple
20+ 'items_collections' : HasSimple ,
21+ 'self_nested_list' : 'self' ,
22+ 'self_nested_dict' : 'self' ,
2123 }
You can’t perform that action at this time.
0 commit comments