def test_organizer_deletion(): filename = 'test.rgs' # Test default value regatta = Regatta(filename, overwrite=True) event = regatta.new_event() sailing_club = regatta.new_sailing_club() event.organizer = sailing_club # Test persistence regatta.save() event_id = event.id sailing_club_id = sailing_club.id # reload regatta regatta = Regatta(filename) event = regatta.session.query(Event).filter(Event.id == event_id).one() print(event.organizer) assert(event.organizer.id == sailing_club.id) # Test deletion regatta.session.delete(event.organizer) regatta.save() # reload regatta regatta = Regatta(filename) event = regatta.session.query(Event).filter(Event.id == event_id).one() print(event.organizer) assert(event.organizer == None)
def test_event_defaults(): filename = 'test.rgs' regatta = Regatta(filename, overwrite=True) event = regatta.new_event() assert(event.name == '') assert(event.mode == Event.Mode.Yardstick.name) assert(event.start_date == datetime.date.today()) assert(event.end_date == datetime.date.today()) assert(event.race_count == 1)
class QRegatta(QObject): # All signals eventCreated = pyqtSignal(QEvent) eventsChanged = pyqtSignal() sailingClubsChanged = pyqtSignal() organizersChanged = pyqtSignal() def __init__(self, parent=None): QObject.__init__(self, parent) # Load the model that we adapt self._regatta = Regatta() self._q_sailing_clubs = QSailingClubs(self, parent) self._q_events = [QEvent(self, event) for event in self._regatta.session.query(Event).all()] @pyqtProperty(QQmlListProperty, notify=eventsChanged) def events(self): return QQmlListProperty(QEvent, self, self._q_events) @pyqtSlot(str) def new_event(self, name): event = self._regatta.new_event(name) q_event = QEvent(self, event) self._q_events.append(q_event) self.eventCreated.emit(q_event) self.eventsChanged.emit() @pyqtProperty(QSailingClubs, notify=sailingClubsChanged) def sailing_clubs(self): return self._q_sailing_clubs @pyqtSlot() def refresh(self): print('refreshing') self.organizersChanged.emit() @pyqtProperty(QSailingClubs, notify=sailingClubsChanged) def organizers(self): # FIXME: return a QSortFilterProxyModel return self._q_sailing_clubs @pyqtSlot() def save(self): self._regatta.save()
def test_regatta_name(): filename = 'test.rgs' name = 'Bayerische Jugendwoche' # FIXME: add mode, start_date # Test default value regatta = Regatta(filename, overwrite=True) event = regatta.new_event() # Test value acceptance event.name = name assert(event.name == name) # Test persistence regatta.save() # reload regatta event_id = event.id regatta = Regatta(filename) event = regatta.session.query(Event).filter(Event.id == event_id).one() assert(event.name == name)