diff --git a/github/GithubObject.UnitTest.py b/github/GithubObject.UnitTest.py index 3d1c63cc..29cb6006 100644 --- a/github/GithubObject.UnitTest.py +++ b/github/GithubObject.UnitTest.py @@ -194,7 +194,7 @@ class GithubObjectWithComplexAttribute( TestCaseWithGithubTestObject ): self.expectDataGet( "/test/a3s/id1" ).andReturn( { "desc": "desc1" } ) self.assertEqual( self.o.a3.desc, "desc1" ) -class GithubObjectWithListOfReferences( TestCaseWithGithubTestObject ): +class GithubObjectWithListGetableList( TestCaseWithGithubTestObject ): ContainedObject = GithubObject( "ContainedObject", BaseUrl( lambda obj: "/test/a3s/" + obj.id ), @@ -221,29 +221,7 @@ class GithubObjectWithListOfReferences( TestCaseWithGithubTestObject ): a3s = self.o.get_a3s( "foobar" ) self.assertEqual( len( a3s ), 3 ) -class GithubObjectWithListGetableList( TestCaseWithGithubTestObject ): - ContainedObject = GithubObject( - "ContainedObject", - BaseUrl( lambda obj: "/test/a3s/" + obj.id ), - BasicAttributes( "id", "name" ) - ) - - GithubTestObject = GithubObject( - "GithubTestObject", - BaseUrl( lambda obj: "/test" ), - BasicAttributes( "a1", "a2" ), - ListOfObjects( "a3s", ContainedObject, ListGetable( [], [] ) ) - ) - - def testGetList( self ): - self.expectDataGet( "/test/a3s", {} ).andReturn( [ { "id": "id1" }, { "id": "id2" }, { "id": "id3" } ] ) - a3s = self.o.get_a3s() - self.assertEqual( len( a3s ), 3 ) - self.assertEqual( a3s[ 0 ].id, "id1" ) - self.expectDataGet( "/test/a3s/id1" ).andReturn( { "name": "name1" } ) - self.assertEqual( a3s[ 0 ].name, "name1" ) - -class GithubObjectWithModifiableListOfReferences( TestCaseWithGithubTestObject ): +class GithubObjectWithElementAddableList( TestCaseWithGithubTestObject ): ContainedObject = GithubObject( "ContainedObject", BaseUrl( lambda obj: "/test/a3s/" + obj.id ), @@ -255,7 +233,7 @@ class GithubObjectWithModifiableListOfReferences( TestCaseWithGithubTestObject ) "GithubTestObject", BaseUrl( lambda obj: "/test" ), BasicAttributes( "a1", "a2" ), - ListOfObjects( "a3s", ContainedObject, ListGetable( [], [] ), ElementAddable(), ElementRemovable(), ElementHasable() ) + ListOfObjects( "a3s", ContainedObject, ElementAddable() ) ) def testAddToList( self ): @@ -263,11 +241,41 @@ class GithubObjectWithModifiableListOfReferences( TestCaseWithGithubTestObject ) self.expectStatusPut( "/test/a3s/idAdd" ).andReturn( 204 ) self.o.add_to_a3s( a3ToAdd ) +class GithubObjectWithElementRemovableList( TestCaseWithGithubTestObject ): + ContainedObject = GithubObject( + "ContainedObject", + BaseUrl( lambda obj: "/test/a3s/" + obj.id ), + Identity( lambda obj: obj.id ), + BasicAttributes( "id", "name" ), + ) + + GithubTestObject = GithubObject( + "GithubTestObject", + BaseUrl( lambda obj: "/test" ), + BasicAttributes( "a1", "a2" ), + ListOfObjects( "a3s", ContainedObject, ElementRemovable() ) + ) + def testRemoveFromList( self ): a3ToRemove = self.ContainedObject( self.g.object, { "id": "idRemove", "name": "nameRemove" }, lazy = True ) self.expectStatusDelete( "/test/a3s/idRemove" ).andReturn( 204 ) self.o.remove_from_a3s( a3ToRemove ) +class GithubObjectWithElementHasableList( TestCaseWithGithubTestObject ): + ContainedObject = GithubObject( + "ContainedObject", + BaseUrl( lambda obj: "/test/a3s/" + obj.id ), + Identity( lambda obj: obj.id ), + BasicAttributes( "id", "name" ), + ) + + GithubTestObject = GithubObject( + "GithubTestObject", + BaseUrl( lambda obj: "/test" ), + BasicAttributes( "a1", "a2" ), + ListOfObjects( "a3s", ContainedObject, ElementHasable() ) + ) + def testHasInList( self ): a3ToQuery = self.ContainedObject( self.g.object, { "id": "idQuery", "name": "nameQuery" }, lazy = True ) self.expectStatusGet( "/test/a3s/idQuery" ).andReturn( 204 ) @@ -314,24 +322,6 @@ class GithubObjectWithElementCreatableList( TestCaseWithGithubTestObject ): with self.assertRaises( TypeError ): self.o.create_a3( foobar = 42 ) -class GithubObjectWithObjectGetter( TestCaseWithGithubTestObject ): - ContainedObject = GithubObject( - "ContainedObject", - BaseUrl( lambda obj: "/test/a3s/" + obj.id ), - BasicAttributes( "id", "name" ) - ) - - GithubTestObject = GithubObject( - "GithubTestObject", - BaseUrl( lambda obj: "/test" ), - BasicAttributes( "a1", "a2" ), - ObjectGetter( "a3", ContainedObject, lambda obj, id : { "id": id } ) - ) - - def testGetList( self ): - self.expectDataGet( "/test/a3s/idGet" ).andReturn( { "id": "idGet" } ) - self.assertEqual( self.o.get_a3( "idGet" ).id, "idGet" ) - class GithubObjectWithElementGetableList( TestCaseWithGithubTestObject ): ContainedObject = GithubObject( "ContainedObject", @@ -350,6 +340,24 @@ class GithubObjectWithElementGetableList( TestCaseWithGithubTestObject ): self.expectDataGet( "/test/a3s/idGet" ).andReturn( { "id": "idGet" } ) self.assertEqual( self.o.get_a3( "idGet" ).id, "idGet" ) +class GithubObjectWithObjectGetter( TestCaseWithGithubTestObject ): + ContainedObject = GithubObject( + "ContainedObject", + BaseUrl( lambda obj: "/test/a3s/" + obj.id ), + BasicAttributes( "id", "name" ) + ) + + GithubTestObject = GithubObject( + "GithubTestObject", + BaseUrl( lambda obj: "/test" ), + BasicAttributes( "a1", "a2" ), + ObjectGetter( "a3", ContainedObject, lambda obj, id : { "id": id } ) + ) + + def testGetList( self ): + self.expectDataGet( "/test/a3s/idGet" ).andReturn( { "id": "idGet" } ) + self.assertEqual( self.o.get_a3( "idGet" ).id, "idGet" ) + def myCallable( obj, mock, arg ): return mock.call( arg )