When executing todo tests before event tests, which is when you call nosetests ./tests/unit to_dict() on an Event object does not return all properties, i.e. it works using properties_map variable from Todo class.
This causes one test to fail when calling only event tests (nosetests ./tests/unit/test-003-event.py). Actually the test fails because there's a bug in the test itself, probably not found before because no one run it separately.
def test_026_compute_diff(self): e1 = event_from_string(xml_event) e2 = event_from_string(xml_event) e2.set_summary("test2") e2.set_end(e1.get_end() + datetime.timedelta(hours=3)) e2.set_sequence(e1.get_sequence() + 1) e2.set_attendee_participant_status("email@example.com", "DECLINED") e2.set_lastmodified() diff = compute_diff(e1.to_dict(), e2.to_dict(), True) self.assertEqual(len(diff), 4, "Diff: (length: %d):\r\n%r\r\n%r" % (len(diff), diff, e2.__str__()))
The diff list contains (and should contain) 5 elements (as you see, we modified 5 properties of the event), so 4 in the assert should be changed to 5. In this case to_dict() does not see 'end' property when executing all scripts, but sees it when executing event tests only.
I have no idea why to_dict() behaves like that. I confirmed that e1 and e2 are of type Event.