Example #1
0
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)
Example #2
0
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)
Example #3
0
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()
Example #4
0
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)
Example #5
0
 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()]