User:Miriya52/week5

From mediawiki.org

Refer to project glossary for acronyms and definitions.
Week 5: January 2 - 6

Objectives[edit]

Write functions to pass unittest. Travis enabled.

Progress Update[edit]

  • I have been copying the pyslet.xml data structures and models to a simplified version at pyslet.gift, conforming to Python 3 only.
  • I added most unittests to test gift.structures, that don't rely on parsing logic.

Debugging Travis test error[edit]

One issue I encountered towards the end of the week, is that as of this commit, the unittests pass when I run tox manually from MacOS. However, it runs into a TypeError on TravisCI. On TravisCI, it is running it on Linux.

The TypeError is thrown from this line, from the original unittests. I traced it and found that os.sep is a str, while <str>.endswith(arg) expects arg to be type <bytes>. Calling <str>.endswith(<str>) in my py3 virtualenv on MacOS doesn't throw a TypeError. Also, the original unittests pass, so it's only running my unittests for python 3.5 on Travis that has this issue.

I think I may disable this test for now, and start working on the parsing logic.

Plan for next week[edit]

  • I will be at Wikimedia Developer Summit in San Francisco from Jan 9 - 11.
  • The end of next week and following week, Jan 16-20, I plan to tackle the GIFT parsers. The logic in the GIFT parsers will be quite different than the QTI xml parser.

Need to implement:

  • gift.structures.Document.generate_gift(): generator that yields serialised GIFT
  • gift.structures.Document.write_gift(): writes serialised GIFT to an output stream
  • gift.parsers