[3523] | 1 | The waeup package |
---|
[3521] | 2 | ******************** |
---|
| 3 | |
---|
| 4 | :Test-Layer: unit |
---|
| 5 | |
---|
| 6 | A portal software for student registration. |
---|
| 7 | |
---|
[3833] | 8 | Prerequisites |
---|
| 9 | ============= |
---|
| 10 | |
---|
| 11 | Before we can work with the environment, we have to register all the |
---|
| 12 | utilities, adapters, etc. We grok the `waeup` package to do that:: |
---|
| 13 | |
---|
| 14 | >>> import grok |
---|
| 15 | >>> grok.testing.grok('waeup') |
---|
| 16 | |
---|
[3521] | 17 | Universities |
---|
| 18 | ============ |
---|
| 19 | |
---|
| 20 | ``University`` objects are the base of all functionality provided by |
---|
| 21 | this package. They contain all facilities of a university. |
---|
| 22 | |
---|
| 23 | We can easily create universities:: |
---|
| 24 | |
---|
[3523] | 25 | >>> from waeup.app import University |
---|
[3521] | 26 | >>> u = University() |
---|
| 27 | >>> u |
---|
[3523] | 28 | <waeup.app.University object at 0x...> |
---|
[3521] | 29 | |
---|
| 30 | Universities have a name. |
---|
| 31 | |
---|
| 32 | >>> u.name |
---|
[3857] | 33 | u'Sample University' |
---|
[3521] | 34 | |
---|
[3833] | 35 | Universities are basically also containers for faculties, students and |
---|
| 36 | hostels:: |
---|
[3521] | 37 | |
---|
[3931] | 38 | >>> u.faculties |
---|
[3833] | 39 | <waeup.university.facultycontainer.FacultyContainer object at 0x...> |
---|
| 40 | |
---|
| 41 | >>> u['students'] |
---|
[3950] | 42 | <waeup.student.studentcontainer.StudentContainer object at 0x...> |
---|
[3833] | 43 | |
---|
| 44 | >>> u['hostels'] |
---|
| 45 | <waeup.hostel.hostelcontainer.HostelContainer object at 0x...> |
---|
| 46 | |
---|
[3857] | 47 | We can export universities. For this we lookup an appropriate exporter |
---|
| 48 | first:: |
---|
| 49 | |
---|
| 50 | >>> from waeup.interfaces import IWAeUPExporter |
---|
| 51 | >>> exporter = IWAeUPExporter(u) |
---|
| 52 | >>> exporter |
---|
| 53 | <waeup.utils.importexport.Exporter object at 0x...> |
---|
| 54 | |
---|
| 55 | Now we can trigger the export:: |
---|
| 56 | |
---|
| 57 | >>> exporter.export(u) |
---|
| 58 | <cStringIO.StringO object at 0x...> |
---|
| 59 | |
---|
| 60 | We can also get an XML representation as file. If we do not provide a |
---|
| 61 | filepath, we will get an instance of `cStringIO.StringIO`, i.e. a |
---|
| 62 | memory file:: |
---|
| 63 | |
---|
| 64 | >>> from waeup.interfaces import IWAeUPXMLExporter |
---|
| 65 | >>> exporter = IWAeUPXMLExporter(u) |
---|
| 66 | >>> f = exporter.export(u) |
---|
| 67 | >>> f |
---|
| 68 | <cStringIO.StringO object at 0x...> |
---|
| 69 | |
---|
| 70 | >>> print f.read() |
---|
| 71 | <?xml version="1.0" encoding="UTF-8"?> |
---|
| 72 | <waeupdata> |
---|
| 73 | <object type="waeup.app.University"> |
---|
| 74 | <attribute name="name" type="unicode"> |
---|
| 75 | Sample University |
---|
| 76 | </attribute> |
---|
| 77 | </object> |
---|
| 78 | </waeupdata> |
---|
| 79 | |
---|
| 80 | |
---|
| 81 | |
---|
[3521] | 82 | Faculties |
---|
| 83 | ========= |
---|
| 84 | |
---|
| 85 | Faculties are containers for departments. They are intended to be |
---|
| 86 | managed by universities. |
---|
| 87 | |
---|
| 88 | We can create faculties easily:: |
---|
| 89 | |
---|
[3833] | 90 | >>> from waeup.university.faculty import Faculty |
---|
[3521] | 91 | >>> f = Faculty() |
---|
| 92 | >>> f |
---|
[3833] | 93 | <waeup.university.faculty.Faculty object at 0x...> |
---|
[3521] | 94 | |
---|
| 95 | Also faculties want to be named:: |
---|
| 96 | |
---|
| 97 | >>> f.name |
---|
| 98 | u'Unnamed Faculty' |
---|
| 99 | |
---|
| 100 | Departments |
---|
| 101 | =========== |
---|
| 102 | |
---|