Line 1: |
Line 1: |
| == Summary == | | == Summary == |
| | | |
− | Library and application that mimic regular sugar clients behaviour to help with testing [[Sugar Server Kit]] components and [[Sugar Server Kit]] based solutions.
| + | '''{{Code|sugaroid}}''' is a library and application that mimics regular sugar client behaviour to help with testing [[Sugar Server Kit]] components and [[Sugar Server Kit]] based solutions. |
| | | |
| == Using libsugaroid == | | == Using libsugaroid == |
| | | |
− | Useful for python code that tests, e.g., the school server internals.
| + | It is useful for python code that tests, e.g., the school server internals. |
| | | |
| See sugar-server [http://git.sugarlabs.org/server/server/trees/master/tests/integration integration tests] for examples. | | See sugar-server [http://git.sugarlabs.org/server/server/trees/master/tests/integration integration tests] for examples. |
Line 11: |
Line 11: |
| == System testing scenarios == | | == System testing scenarios == |
| | | |
− | In this mode, sugaroid application tries to behave as a regular host with sugar launched on it, including anti-thief features specific only for XO laptops. | + | In this mode, the sugaroid application tries to behave as a regular host with sugar launched on it, including anti-thief features specific only for XO laptops. |
| | | |
| === Scenario files === | | === Scenario files === |
| | | |
− | The regular way is writing scenarios, python scripts that need to be launched by {{Code|sugaroid}} program, i.e., such files need to have headers (you need to have path to source {{Code|sugaroid}} file in {{Code|PATH}} variable):
| + | Regular use involves writing scenarios—python scripts that need to be launched by the {{Code|sugaroid}} program, i.e., such files need to have headers (you need to have the path to the source {{Code|sugaroid}} file in the {{Code|PATH}} environment variable): |
| | | |
| #!/bin/env sugaroid | | #!/bin/env sugaroid |
Line 24: |
Line 24: |
| pass | | pass |
| | | |
− | it will be launched by {{Code|sugaroid}} with passing execution context as a {{Code|libsugaroid.context.Context}} object and command-line arguments. The content of {{Code|main()}} function is exactly the scenario how sugaroid should behave.
| + | It will be launched by {{Code|sugaroid}} by passing an execution context as a {{Code|libsugaroid.context.Context}} object along with command-line arguments. The content of the {{Code|main()}} function is exactly the scenario in which {{Code|sugaroid}} should behave. |
| | | |
| === Actions === | | === Actions === |
| | | |
− | The building blocks of sugaroid scenarios are actions. Actions are objects of classes inherited from {{Code|libsugaroid.context.Action}}. Action classes represent one particular aspect of sugar client behaviour, e.g., activation or backup. | + | The building blocks of sugaroid scenarios are actions. Actions are objects of classes inherited from {{Code|libsugaroid.context.Action}}. Action classes represent one particular aspect of some sugar client behaviour, e.g., activation or backup. |
| | | |
− | The simple scenario looks like:
| + | A simple scenario looks like: |
| | | |
| from libsugaroid.actions import Activation, Registration, Presence, Backup | | from libsugaroid.actions import Activation, Registration, Presence, Backup |
Line 42: |
Line 42: |
| === Launch === | | === Launch === |
| | | |
− | The first command-line argument that scenario should get is a nick of sugar user. That nick will be used as a directory name in {{Code|--root}} directory to store all data related to this nick. Besides, scenario should take {{Code|--server}} command-line argument with launched [[Sugar_Server_Kit/sugar-server|sugar-server]] address and {{Code|--lease_key}} with a path to public key that was used to sign leases returned by sugar-server. | + | The first command-line argument that scenario should receive is a nick of the sugar user. That nick will be used as a directory name in the {{Code|--root}} directory to store all data related to this nick. Thereafter, scenario should take a {{Code|--server}} command-line argument, with the launched [[Sugar_Server_Kit/sugar-server|sugar-server]] address, and a {{Code|--lease_key}} argument, with a path to the public key that was used to sign leases returned by sugar-server. |
| | | |
− | To simplify usage, serial number and UUID will be automatically generated basing on nick names. Thus, there is a fast way how to let sugar-server know about leases for scenario nicks: | + | To simplify usage, serial number and UUID will be automatically generated basing on nick names. Thus, there is a fast way in which to let sugar-server know about leases for scenario nicks: |
| | | |
| bc-make-lease `sugaroid id ''nick''` ''days'' | sugar-server activation import_lease | | bc-make-lease `sugaroid id ''nick''` ''days'' | sugar-server activation import_lease |
Line 50: |
Line 50: |
| == Getting involved == | | == Getting involved == |
| | | |
− | * [http://bugs.sugarlabs.org/newticket?component=sugar-server-kit Report] about bugs. | + | * [http://bugs.sugarlabs.org/newticket?component=sugar-server-kit Report] on bugs. |
− | * Read the [http://git.sugarlabs.org/server/sugaroid/blobs/master/HACKING HACKING] file to know how to contribute by a code. | + | * Read the [http://git.sugarlabs.org/server/sugaroid/blobs/master/HACKING HACKING] file to know how to contribute with code. |
| | | |
| == Resources == | | == Resources == |
| | | |
| * [http://git.sugarlabs.org/server/sugaroid Sources]. | | * [http://git.sugarlabs.org/server/sugaroid Sources]. |