moving docs out of the base lib

This commit is contained in:
enus.linden
2009-04-27 22:55:40 +00:00
committed by Salad Dais
parent ea5c1a62eb
commit 273ee5a6ba
405 changed files with 0 additions and 37570 deletions

View File

@@ -1,37 +0,0 @@
agent
=====
.. module:: pyogp.lib.base.tests.agent
This is a doctest, the content here is verbatim from the source file at pyogp.lib.base.tests.agent.txt.
Agent
~~~~~
The 'agent' login case
~~~~~~~~~~~~~~~~~~~~~~
First, initialize the agent
>>> from pyogp.lib.base.agent import Agent
>>> client = Agent()
For testing, we need to set up the loginhandler and the loginuri
>>> loginuri = 'http://localhost:12345/login.cgi'
Setup test: import of the mock network client handler
>>> from pyogp.lib.base.tests.mock_xmlrpc import MockXMLRPC
>>> from pyogp.lib.base.tests.base import MockXMLRPCLogin
>>> loginhandler = MockXMLRPC(MockXMLRPCLogin(), loginuri)
Now let's log it in
>>> client.login('http://localhost:12345/login.cgi', 'firstname', 'lastname', 'password', start_location = 'start_location', handler = loginhandler, connect_region = False)
Evaluate the login response
>>> client.login_response
{'region_y': '256', 'region_x': '256', 'first_name': '"first"', 'secure_session_id': '00000000-0000-0000-0000-000000000000', 'sim_ip': '127.0.0.1', 'agent_access': 'M', 'circuit_code': '600000000', 'look_at': '[r0.9963859999999999939,r-0.084939700000000006863,r0]', 'session_id': '00000000-0000-0000-0000-000000000000', 'udp_blacklist': 'EnableSimulator,TeleportFinish,CrossedRegion', 'seed_capability': 'https://somesim:12043/cap/00000000-0000-0000-0000-000000000000', 'agent_id': '00000000-0000-0000-0000-000000000000', 'last_name': 'last', 'inventory_host': 'someinvhost', 'start_location': 'last', 'sim_port': '13001', 'message': 'message', 'login': 'true', 'seconds_since_epoch': '1234567890'}

View File

@@ -1,25 +0,0 @@
:mod:`base`
===========
.. automodule:: pyogp.lib.base.tests.base
.. autoclass:: pyogp.lib.base.tests.base.MockAgentDomainLogin
:members:
:undoc-members:
:inherited-members:
.. autoclass:: pyogp.lib.base.tests.base.StdLibClient
:members:
:undoc-members:
:inherited-members:
.. autoclass:: pyogp.lib.base.tests.base.MockAgentDomain
:members:
:undoc-members:
:inherited-members:
.. autoclass:: pyogp.lib.base.tests.base.MockXMLRPCLogin
:members:
:undoc-members:
:inherited-members:

View File

@@ -1,61 +0,0 @@
basics
======
.. module:: pyogp.lib.base.network.tests.basics
This is a doctest, the content here is verbatim from the source file at pyogp.lib.base.network.tests.basics.txt.
Networking Basics
~~~~~~~~~~~~~~~~~
The networking layer is basically a replaceable REST client. It is defined as a utility
providing methods such as GET, POST etc.
Let's retrieve the standard utility (this is overridden here in this test to use a mockup network library):
>>> from pyogp.lib.base.exc import HTTPError
>>> from pyogp.lib.base.tests.mockup_client import MockupClient
>>> from pyogp.lib.base.tests.base import StdLibClient
>>> client = MockupClient(StdLibClient())
Now we can use it. Let's post something to our test server:
>>> response = client.GET('http://localhost:12345/network/get')
>>> response.body
'Hello, World'
Let's try a 404:
>>> client.GET('http://localhost:12345/foobar')
Traceback (most recent call last):
...
HTTPError: 404 Not Found
The error object also has some more information in it:
>>> try:
... client.GET('http://localhost:12345/foobar')
... except HTTPError, error:
... pass
Let's check what's available
>>> error.code
404
>>> error.msg
'Not Found'
>>> error.fp.read()
'resource not found.'
POSTing something
~~~~~~~~~~~~~~~~~
>>> response = client.POST('http://localhost:12345/network/post','test me')
>>> response.body
'returned: test me'

View File

@@ -1,132 +0,0 @@
caps
====
.. module:: pyogp.lib.base.tests.caps
This is a doctest, the content here is verbatim from the source file at pyogp.lib.base.tests.caps.txt.
The Capabilities component
~~~~~~~~~~~~~~~~~~~~~~~~~~
The Capabilities component basically gives us two objects: a Capability
and a SeedCapability.
We can instantiate a SeedCapability like this:
>>> from pyogp.lib.base.tests.mockup_client import MockupClient
>>> from pyogp.lib.base.caps import SeedCapability, Capability
>>> from pyogp.lib.base.tests.base import MockAgentDomain
>>> client = MockupClient(MockAgentDomain())
>>> seed = SeedCapability('seed', 'http://127.0.0.1:12345/seed_cap', client)
We assume that we got the seed capability URL itself from login or some other service.
We can now ask this SeedCapability object for new capabilities:
>>> caps = seed.get(['some_capability', 'some_other'])
The result is a dictionary object:
>>> len(caps.keys())
2
whose contents are:
>>> caps['some_capability']
<Capability 'some_capability' for http://localhost:12345/cap/some_capability>
>>> caps['some_other']
<Capability 'some_other' for http://localhost:12345/cap/some_other>
Let's store the some_capability cap in a variable:
>>> some_cap = caps['some_capability']
The capability now can be simply called with a payload and returns some data itself.
First we call it:
>>> data = some_cap.POST({'a':'b'})
And now we can check the data:
>>> data['something']
'else'
>>> data['some']
12345
This data here is provided by the mockup server for testing.
Internals
~~~~~~~~~
Each capability stores it's name and public URL which it is instantiated with.
We can access these like this:
>>> some_cap.name
'some_capability'
>>> some_cap.public_url
'http://localhost:12345/cap/some_capability'
As we can see, it's not a secret URL in this mockup case but in production it will be.
We can of course also just instantiate some capability directly:
>>> cap = Capability("cap", "http://localhost:12345/cap/some_capability", client)
and retrieve it via GET:
>>> cap.GET()
{'some': 12345, 'something': 'else'}
or post something to it (the demo will simply update the base dict):
>>> cap.POST({'Tao':'Takashi'})
{'Tao': 'Takashi', 'some': 12345, 'something': 'else'}
Testing errors
~~~~~~~~~~~~~~
Now we can test what happens to our code when the server returns a wrong content type.
In this case it should not find a deserializer and say so::
>>> seed = SeedCapability('seed', 'http://127.0.0.1:12345/seed_cap_wrong_content_type', client)
>>> cap = seed.get(['some_capability'])
Traceback (most recent call last):
...
DeserializerNotFound: deserialization for 'text/foobar' not supported
Try the same for GET:
>>> cap = Capability('test','http://127.0.0.1:12345/cap_wrong_content_type', client)
>>> cap.GET()
Traceback (most recent call last):
...
DeserializerNotFound: deserialization for 'text/foobar' not supported
Now we test if network errors are handled correctly::
>>> cap = Capability('test','http://127.0.0.1:12345/cap/error', client)
>>> cap.POST({'test':'testing'})
Traceback (most recent call last):
...
ResourceError: Error using 'POST' on resource 'http://127.0.0.1:12345/cap/error': Internal Server Error (500)
And some 404:
>>> cap = Capability('test','http://127.0.0.1:12345/cap/unkown', client)
>>> cap.POST({'test':'testing'})
Traceback (most recent call last):
...
ResourceNotFound: http://127.0.0.1:12345/cap/unkown

View File

@@ -1,5 +0,0 @@
:mod:`config`
=============
.. automodule:: pyogp.lib.base.tests.config

View File

@@ -1,105 +0,0 @@
login
=====
.. module:: pyogp.lib.base.tests.login
This is a doctest, the content here is verbatim from the source file at pyogp.lib.base.tests.login.txt.
Login
~~~~~
First the 'legacy' login case
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
First, initialize login and the loginuri
>>> from pyogp.lib.base.login import Login
>>> login = Login()
>>> loginuri = 'http://localhost:12345/login.cgi'
Setup test: import of the mock network client handler
>>> from pyogp.lib.base.tests.mock_xmlrpc import MockXMLRPC
>>> from pyogp.lib.base.tests.base import MockXMLRPCLogin
>>> loginhandler = MockXMLRPC(MockXMLRPCLogin(), loginuri)
Now, set up the login parameters:
>>> from pyogp.lib.base.login import LegacyLoginParams
>>> login_params = LegacyLoginParams('first', 'last', 'secret')
Now, login to the legacy login endpoint (using the mock test object as the endpoint).
The login function returns the response as a dict.
>>> login.login(loginuri, login_params, 'start_location', handler = loginhandler)
{'region_y': '256', 'region_x': '256', 'first_name': '"first"', 'secure_session_id': '00000000-0000-0000-0000-000000000000', 'sim_ip': '127.0.0.1', 'agent_access': 'M', 'circuit_code': '600000000', 'look_at': '[r0.9963859999999999939,r-0.084939700000000006863,r0]', 'session_id': '00000000-0000-0000-0000-000000000000', 'udp_blacklist': 'EnableSimulator,TeleportFinish,CrossedRegion', 'seed_capability': 'https://somesim:12043/cap/00000000-0000-0000-0000-000000000000', 'agent_id': '00000000-0000-0000-0000-000000000000', 'last_name': 'last', 'inventory_host': 'someinvhost', 'start_location': 'last', 'sim_port': '13001', 'message': 'message', 'login': 'true', 'seconds_since_epoch': '1234567890'}
Evaluate the login response stored in the login class
>>> login.response['login']
'true'
>>> login.response['seed_capability']
'https://somesim:12043/cap/00000000-0000-0000-0000-000000000000'
Next, LegacyLoginParams
~~~~~~~~~~~~~~~~~~~~~~~
This is easy, just test it
>>> from pyogp.lib.base.login import LegacyLoginParams
>>> login_params = LegacyLoginParams('first', 'last', 'pass')
>>> login_params = login_params.serialize()
>>> login_params
{'passwd': 'pass', 'last': 'last', 'first': 'first'}
Now, how about testing the 'ogp' case
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
First, initialize login and the loginuri
>>> from pyogp.lib.base.login import Login
>>> login = Login()
>>> loginuri = 'http://localhost:12345/auth.cgi'
Setup test: import of the mock network client handler
>>> from pyogp.lib.base.network.tests.mockup_client import MockupClient
>>> from pyogp.lib.base.tests.base import MockAgentDomainLogin
>>> loginhandler = MockupClient(MockAgentDomainLogin())
Now, set up the login parameters:
>>> from pyogp.lib.base.login import OGPLoginParams
>>> login_params = OGPLoginParams('first', 'last', 'secret')
Now, login to the ogp login endpoint aka agent domain (using the mock test object as the endpoint).
The login function returns the response as a dict.
>>> login.login(loginuri, login_params, 'start_location', handler = loginhandler)
{'agent_seed_capability': 'http://127.0.0.1:12345/seed_cap', 'authenticated': True}
Evaluate the login response stored in the login class
>>> login.response['authenticated']
True
>>> login.response['agent_seed_capability']
'http://127.0.0.1:12345/seed_cap'
Next, OGPLoginParams
~~~~~~~~~~~~~~~~~~~~
This is easy, just test it
>>> from pyogp.lib.base.login import OGPLoginParams
>>> login_params = OGPLoginParams('first', 'last', 'pass')
>>> login_params.content_type
'application/llsd+xml'
>>> login_params = login_params.serialize()
>>> login_params
'<?xml version="1.0" ?><llsd><map><key>lastname</key><string>last</string><key>password</key><string>pass</string><key>firstname</key><string>first</string></map></llsd>'

View File

@@ -1,10 +0,0 @@
:mod:`mock_xmlrpc`
==================
.. automodule:: pyogp.lib.base.tests.mock_xmlrpc
.. autoclass:: pyogp.lib.base.tests.mock_xmlrpc.MockXMLRPC
:members:
:undoc-members:
:inherited-members:

View File

@@ -1,10 +0,0 @@
:mod:`mockup_client`
====================
.. automodule:: pyogp.lib.base.tests.mockup_client
.. autoclass:: pyogp.lib.base.tests.mockup_client.MockupClient
:members:
:undoc-members:
:inherited-members:

View File

@@ -1,15 +0,0 @@
:mod:`mockup_net`
=================
.. automodule:: pyogp.lib.base.tests.mockup_net
.. autoclass:: pyogp.lib.base.tests.mockup_net.MockupUDPClient
:members:
:undoc-members:
:inherited-members:
.. autoclass:: pyogp.lib.base.tests.mockup_net.MockupUDPServer
:members:
:undoc-members:
:inherited-members:

View File

@@ -1,25 +0,0 @@
network_test
============
.. module:: pyogp.lib.base.network.tests.network_test
This is a doctest, the content here is verbatim from the source file at pyogp.lib.base.network.tests.network_test.txt.
"""
Contributors can be viewed at:
http://svn.secondlife.com/svn/linden/projects/2008/pyogp/CONTRIBUTORS.txt
$LicenseInfo:firstyear=2008&license=apachev2$
Copyright 2009, Linden Research, Inc.
Licensed under the Apache License, Version 2.0 (the "License").
You may obtain a copy of the License at:
http://www.apache.org/licenses/LICENSE-2.0
or in
http://svn.secondlife.com/svn/linden/projects/2008/pyogp/LICENSE.txt
$/LicenseInfo$
"""

View File

@@ -1,34 +0,0 @@
packet_handler
==============
.. module:: pyogp.lib.base.tests.packet_handler
This is a doctest, the content here is verbatim from the source file at pyogp.lib.base.tests.packet_handler.txt.
PacketHandler
~~~~~~~~~~~~~
The basic packet handling event/callbackcase
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
First, initialize the packet handler
>>> from pyogp.lib.base.message.packethandler import PacketHandler
>>> packet_handler = PacketHandler()
How about a mock callback handler
>>> def callback(packet): print packet
>>> onStartPingCheck_received = packet_handler._register("StartPingCheck")
>>> onStartPingCheck_received.subscribe(callback)
Stage a packet
>>> from pyogp.lib.base.message.packets import StartPingCheckPacket
>>> packet = StartPingCheckPacket()
Fire the event, it returns a packet
Unpossible to include this in the test, the memory ref keeps changing
But, you get the idea...
event_data = packet_handler._handle(packet)
<pyogp.lib.base.message.packets.StartPingCheckPacket object at 0x14da450>

View File

@@ -1,10 +0,0 @@
:mod:`packet_test`
==================
.. automodule:: pyogp.lib.base.message.tests.packet_test
.. autoclass:: pyogp.lib.base.message.tests.packet_test.PacketTest
:members:
:undoc-members:
:inherited-members:

View File

@@ -1,20 +0,0 @@
region
======
.. module:: pyogp.lib.base.tests.region
This is a doctest, the content here is verbatim from the source file at pyogp.lib.base.tests.region.txt.
Region
~~~~~~
The 'region' object creation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
First, initialize the region
>>> from pyogp.lib.base.region import Region
>>> region = Region()
Not complete...

View File

@@ -1,5 +0,0 @@
:mod:`testDocTests`
===================
.. automodule:: pyogp.lib.base.tests.testDocTests

View File

@@ -1,9 +0,0 @@
:mod:`test_agent`
=================
.. automodule:: pyogp.lib.base.tests.test_agent
.. autoclass:: pyogp.lib.base.tests.test_agent.TestAgent
:members:
:undoc-members:

View File

@@ -1,17 +0,0 @@
:mod:`test_circuits`
====================
.. automodule:: pyogp.lib.base.message.tests.test_circuits
.. autoclass:: pyogp.lib.base.message.tests.test_circuits.TestCircuitManager
:members:
:undoc-members:
.. autoclass:: pyogp.lib.base.message.tests.test_circuits.TestHost
:members:
:undoc-members:
.. autoclass:: pyogp.lib.base.message.tests.test_circuits.TestCircuit
:members:
:undoc-members:

View File

@@ -1,9 +0,0 @@
:mod:`test_datatypes`
=====================
.. automodule:: pyogp.lib.base.tests.test_datatypes
.. autoclass:: pyogp.lib.base.tests.test_datatypes.TestDatatypes
:members:
:undoc-members:

View File

@@ -1,9 +0,0 @@
:mod:`test_event_queue`
=======================
.. automodule:: pyogp.lib.base.tests.test_event_queue
.. autoclass:: pyogp.lib.base.tests.test_event_queue.TestEventQueue
:members:
:undoc-members:

View File

@@ -1,13 +0,0 @@
:mod:`test_event_system`
========================
.. automodule:: pyogp.lib.base.tests.test_event_system
.. autoclass:: pyogp.lib.base.tests.test_event_system.TestEvents
:members:
:undoc-members:
.. autoclass:: pyogp.lib.base.tests.test_event_system.MockEvent
:members:
:undoc-members:

View File

@@ -1,9 +0,0 @@
:mod:`test_events`
==================
.. automodule:: pyogp.lib.base.tests.test_events
.. autoclass:: pyogp.lib.base.tests.test_events.TestEvents
:members:
:undoc-members:

View File

@@ -1,9 +0,0 @@
:mod:`test_helpers`
===================
.. automodule:: pyogp.lib.base.tests.test_helpers
.. autoclass:: pyogp.lib.base.tests.test_helpers.TestHelpers
:members:
:undoc-members:

View File

@@ -1,9 +0,0 @@
:mod:`test_inventory`
=====================
.. automodule:: pyogp.lib.base.tests.test_inventory
.. autoclass:: pyogp.lib.base.tests.test_inventory.TestInventory
:members:
:undoc-members:

View File

@@ -1,9 +0,0 @@
:mod:`test_legacy_login`
========================
.. automodule:: pyogp.lib.base.tests.test_legacy_login
.. autoclass:: pyogp.lib.base.tests.test_legacy_login.TestLegacyLogin
:members:
:undoc-members:

View File

@@ -1,9 +0,0 @@
:mod:`test_llsd_builder`
========================
.. automodule:: pyogp.lib.base.message.tests.test_llsd_builder
.. autoclass:: pyogp.lib.base.message.tests.test_llsd_builder.TestLLSDBuilder
:members:
:undoc-members:

View File

@@ -1,9 +0,0 @@
:mod:`test_message_wrapper`
===========================
.. automodule:: pyogp.lib.base.message.tests.test_message_wrapper
.. autoclass:: pyogp.lib.base.message.tests.test_message_wrapper.TestMessage
:members:
:undoc-members:

View File

@@ -1,9 +0,0 @@
:mod:`test_objects`
===================
.. automodule:: pyogp.lib.base.tests.test_objects
.. autoclass:: pyogp.lib.base.tests.test_objects.TestObjects
:members:
:undoc-members:

View File

@@ -1,9 +0,0 @@
:mod:`test_ogp_login`
=====================
.. automodule:: pyogp.lib.base.tests.test_ogp_login
.. autoclass:: pyogp.lib.base.tests.test_ogp_login.TestOGPLogin
:members:
:undoc-members:

View File

@@ -1,9 +0,0 @@
:mod:`test_packetdata`
======================
.. automodule:: pyogp.lib.base.message.tests.test_packetdata
.. autoclass:: pyogp.lib.base.message.tests.test_packetdata.TestPacketDecode
:members:
:undoc-members:

View File

@@ -1,9 +0,0 @@
:mod:`test_region`
==================
.. automodule:: pyogp.lib.base.tests.test_region
.. autoclass:: pyogp.lib.base.tests.test_region.TestRegion
:members:
:undoc-members:

View File

@@ -1,13 +0,0 @@
:mod:`test_template_parser`
===========================
.. automodule:: pyogp.lib.base.message.tests.test_template_parser
.. autoclass:: pyogp.lib.base.message.tests.test_template_parser.TestTemplates
:members:
:undoc-members:
.. autoclass:: pyogp.lib.base.message.tests.test_template_parser.TestDictionary
:members:
:undoc-members:

View File

@@ -1,9 +0,0 @@
:mod:`test_udp_deserializer`
============================
.. automodule:: pyogp.lib.base.message.tests.test_udp_deserializer
.. autoclass:: pyogp.lib.base.message.tests.test_udp_deserializer.TestDeserializer
:members:
:undoc-members:

View File

@@ -1,9 +0,0 @@
:mod:`test_udp_serializer`
==========================
.. automodule:: pyogp.lib.base.message.tests.test_udp_serializer
.. autoclass:: pyogp.lib.base.message.tests.test_udp_serializer.TestSerializer
:members:
:undoc-members:

View File

@@ -1,9 +0,0 @@
:mod:`test_udpconnection`
=========================
.. automodule:: pyogp.lib.base.message.tests.test_udpconnection
.. autoclass:: pyogp.lib.base.message.tests.test_udpconnection.TestUDPConnection
:members:
:undoc-members: