Ejemplo n.º 1
0
 def test_store_sport_should_update_row_when_sport_has_id(self):
     sport = Sport()
     sport.name = u"Test name"
     sport = self.sport_service.store_sport(sport)
     sport.name = u"New name"
     self.sport_service.store_sport(sport)
     sport = self.sport_service.get_sport(1)
     self.assertEquals(sport.name, u"New name")
Ejemplo n.º 2
0
 def test_store_sport_should_update_row_when_sport_has_id(self):
     sport = Sport()
     sport.name = u"Test name"
     sport = self.sport_service.store_sport(sport)
     sport.name = u"New name"
     self.sport_service.store_sport(sport)
     sport = self.sport_service.get_sport(1)
     self.assertEqual(sport.name, u"New name")
Ejemplo n.º 3
0
 def test_store_sport_should_error_when_new_sport_has_duplicate_name(self):
     sport1 = Sport()
     sport1.name = u"Test name"
     self.sport_service.store_sport(sport1)
     sport2 = Sport()
     sport2.name = u"Test name"
     try:
         self.sport_service.store_sport(sport2)
     except(SportServiceException):
         pass
     else:
         self.fail()
Ejemplo n.º 4
0
 def test_store_sport_should_error_when_new_sport_has_duplicate_name(self):
     sport1 = Sport()
     sport1.name = u"Test name"
     self.sport_service.store_sport(sport1)
     sport2 = Sport()
     sport2.name = u"Test name"
     try:
         self.sport_service.store_sport(sport2)
     except (SportServiceException):
         pass
     else:
         self.fail()
Ejemplo n.º 5
0
 def test_get_all_sports_should_return_all_sports_in_query_result(self):
     sport1 = Sport()
     sport1.name = u"Test name"
     self.sport_service.store_sport(sport1)
     sport2 = Sport()
     sport2.name = u"Test name 2"
     self.sport_service.store_sport(sport2)
     sports = self.sport_service.get_all_sports()
     self.assertEqual(2, len(sports))
     sport1 = sports[0]
     self.assertEqual(1, sport1.id)
     sport2 = sports[1]
     self.assertEqual(2, sport2.id)
Ejemplo n.º 6
0
 def test_get_all_sports_should_return_all_sports_in_query_result(self):
     sport1 = Sport()
     sport1.name = u"Test name"
     self.sport_service.store_sport(sport1)
     sport2 = Sport()
     sport2.name = u"Test name 2"
     self.sport_service.store_sport(sport2)
     sports = self.sport_service.get_all_sports()
     self.assertEquals(2, len(sports))
     sport1 = sports[0]
     self.assertEquals(1, sport1.id)
     sport2 = sports[1]
     self.assertEquals(2, sport2.id)
Ejemplo n.º 7
0
 def test_remove_sport_should_remove_associated_entries(self):
     sport = Sport()
     sport.name = u"Test name"
     sport = self.sport_service.store_sport(sport)
     self.sport_service.remove_sport(sport)
     result = self.sport_service.get_sport(1)
     self.assertEquals(result, None)
Ejemplo n.º 8
0
 def on_newsport_accept_clicked(self, widget):
     sport = Sport()
     sport.name = gtk_str(self.newsportentry.get_text())
     sport.met = self._trim_to_null(gtk_str(self.newmetentry.get_text()))
     sport.weight = self._float_or_zero(
         gtk_str(self.newweightentry.get_text()))
     sport.max_pace = self._trim_to_null(gtk_str(
         self.newmaxpace.get_text()))
     sport.color = self.stored_color
     if sport.name.lower() in [
             s.name.lower() for s in self._sport_service.get_all_sports()
     ]:
         msg = "Sport '%s' already exists" % sport.name
         logging.error(msg)
         md = Gtk.MessageDialog(None, Gtk.DialogFlags.DESTROY_WITH_PARENT,
                                Gtk.MessageType.ERROR,
                                Gtk.ButtonsType.CLOSE, _(msg))
         md.set_title(_("Sport Creation Error"))
         md.run()
         md.destroy()
         return
     self._sport_service.store_sport(sport)
     self.pytrainer_main.refreshMainSportList()
     self.on_switch_page(None, None, 2)
     self.hidesportsteps()
     self.buttonbox.set_sensitive(1)
     self.sportlist.show()
Ejemplo n.º 9
0
 def on_newsport_accept_clicked(self, widget):
     sport = Sport()
     sport.name = unicode(self.newsportentry.get_text())
     sport.met = self._trim_to_null(self.newmetentry.get_text())
     sport.weight = self.newweightentry.get_text()
     sport.max_pace = self._trim_to_null(self.newmaxpace.get_text())
     sport.color = self.stored_color
     if sport.name.lower() in [
             s.name.lower() for s in self._sport_service.get_all_sports()
     ]:
         msg = "Sport '%s' already exists" % sport.name
         logging.error(msg)
         md = gtk.MessageDialog(None, gtk.DIALOG_DESTROY_WITH_PARENT,
                                gtk.MESSAGE_ERROR, gtk.BUTTONS_CLOSE,
                                _(msg))
         md.set_title(_("Sport Creation Error"))
         md.run()
         md.destroy()
         return
     self._sport_service.store_sport(sport)
     self.parent.actualize_mainsportlist()
     self.on_switch_page(None, None, 2)
     self.hidesportsteps()
     self.buttonbox.set_sensitive(1)
     self.sportlist.show()
Ejemplo n.º 10
0
 def test_remove_sport_should_remove_associated_entries(self):
     sport = Sport()
     sport.name = u"Test name"
     sport = self.sport_service.store_sport(sport)
     self.sport_service.remove_sport(sport)
     result = self.sport_service.get_sport(1)
     self.assertEqual(result, None)
Ejemplo n.º 11
0
 def test_name_should_not_accept_none(self):
     sport = Sport()
     try:
         sport.name = None
     except(TypeError):
         pass
     else:
         self.fail()
Ejemplo n.º 12
0
 def test_met_should_accept_float_string(self):
     sport = Sport()
     sport.name = "test1"
     sport.met = "22.5"
     self.ddbb.session.add(sport)
     self.ddbb.session.commit()
     sport = self.ddbb.session.query(Sport).filter(Sport.id == 1).one()
     self.assertEquals(22.5, sport.met)
Ejemplo n.º 13
0
 def test_met_should_accept_float_string(self):
     sport = Sport()
     sport.name = "test1"
     sport.met = "22.5"
     self.ddbb.session.add(sport)
     self.ddbb.session.commit()
     sport = self.ddbb.session.query(Sport).filter(Sport.id == 1).one()
     self.assertEqual(22.5, sport.met)
Ejemplo n.º 14
0
 def test_name_should_not_accept_non_unicode_string(self):
     sport = Sport()
     try:
         sport.name = "Juggling"
     except(TypeError):
         pass
     else:
         self.fail()
Ejemplo n.º 15
0
 def test_name_should_not_accept_non_unicode_string(self):
     sport = Sport()
     sport.name = "Juggling" + chr(255)
     try:
         self.ddbb.session.add(sport)
         self.ddbb.session.flush()
     except (ProgrammingError, DataError):
         pass
     else:
         self.fail()
Ejemplo n.º 16
0
 def test_name_should_not_accept_non_unicode_string(self):
     sport = Sport()
     sport.name = "Juggling" + chr(255)
     try:
         self.ddbb.session.add(sport)
         self.ddbb.session.flush()
     except (ProgrammingError, DataError, OperationalError):
         pass
     else:
         self.fail()
Ejemplo n.º 17
0
 def test_name_should_not_accept_none(self):
     sport = Sport()
     sport.name = None
     try:
         self.ddbb.session.add(sport)
         self.ddbb.session.commit()
     except (IntegrityError, OperationalError):
         pass
     else:
         self.fail()
Ejemplo n.º 18
0
 def test_name_should_not_accept_none(self):
     sport = Sport()
     sport.name = None
     try:
         self.ddbb.session.add(sport)
         self.ddbb.session.commit()
     except (IntegrityError, OperationalError):
         pass
     else:
         self.fail()
Ejemplo n.º 19
0
 def test_store_sport_should_error_when_new_sport_has_duplicate_name(self):
     self.mock_ddbb.select.return_value = [(1, u"Test name", 150, 12.5, 200, "0")]
     sport = Sport()
     sport.name = u"Test name"
     try:
         self.sport_service.store_sport(sport)
     except(SportServiceException):
         pass
     else:
         self.fail()
Ejemplo n.º 20
0
 def test_name_should_not_accept_non_unicode_string(self):
     if self.ddbb.engine.name == 'mysql':
         self.skipTest('Not supported on Mysql 5.6')
     sport = Sport()
     sport.name = "Juggling" + chr(255)
     try:
         self.ddbb.session.add(sport)
         self.ddbb.session.flush()
     except (ProgrammingError, DataError, OperationalError):
         pass
     else:
         self.fail()
Ejemplo n.º 21
0
 def test_store_sport_should_insert_row_when_sport_has_no_id(self):
     def mock_select(table, columns, where):
         call_count = self.mock_ddbb.select.call_count
         if call_count == 2:
             return [[1]]
         return []
     self.mock_ddbb.select = mock.Mock(wraps=mock_select)
     sport = Sport()
     sport.name = u"Test name"
     self.sport_service.store_sport(sport)
     self.mock_ddbb.insert.assert_called_with("sports",  "name,weight,met,max_pace,color",
                                              [u"Test name", 0.0, None, None, "0000ff"])
Ejemplo n.º 22
0
 def test_store_sport_should_update_row_when_sport_has_id(self):
     def mock_select(table, columns, where):
         if columns == "id_sports":
             return [[1]]
         else:
             return [(1, u"", 0, 0, 0, "0")]
     self.mock_ddbb.select = mock.Mock(wraps=mock_select)
     sport = Sport()
     sport.id = 1
     sport.name = u"New name"
     self.sport_service.store_sport(sport)
     self.mock_ddbb.update.assert_called_with("sports",  "name,weight,met,max_pace,color",
                                              [u"New name", 0.0, None, None, "0000ff"], "id_sports=1")
Ejemplo n.º 23
0
 def test_store_sport_should_error_when_existing_sport_has_duplicate_name(self):
     def mock_select(table, columns, where):
         if columns == pytrainer.core.sport._ID_COLUMN:
             return [[2]]
         else:
             return [(1, u"Test name", 0, 0.0, "0"), (2, u"New name", 0, 0.0, "0")]
     self.mock_ddbb.select = mock.Mock(wraps=mock_select)
     sport = Sport()
     sport.id = 1
     sport.name = u"New name"
     try:
         self.sport_service.store_sport(sport)
     except(SportServiceException):
         pass
     else:
         self.fail()
Ejemplo n.º 24
0
    def getSportId(self, sport_name, add=None):
        """Deprecated: use sport_service.get_sport_by_name()
		
		Get the id of a sport by name, optionally adding a new sport if
		none exists with the given name.
		arguments:
			sport_name: sport's name to get id for
			add: whether the sport should be added if not found
		returns: id for sport with given name or None"""
        if sport_name is None:
            return None
        sport = self._get_sport(sport_name)
        if sport is None:
            logging.debug("No sport with name: '%s'", str(sport_name))
            if add is not None:
                logging.debug("Adding sport '%s'", str(sport_name))
                new_sport = Sport()
                new_sport.name = unicode(sport_name)
                sport = self._sport_service.store_sport(new_sport)
        return None if sport is None else sport.id
Ejemplo n.º 25
0
    def getSportId(self, sport_name, add=None):
        """Deprecated: use sport_service.get_sport_by_name()
		
		Get the id of a sport by name, optionally adding a new sport if
		none exists with the given name.
		arguments:
			sport_name: sport's name to get id for
			add: whether the sport should be added if not found
		returns: id for sport with given name or None"""
        if sport_name is None:
            return None
        sport = self._get_sport(sport_name)
        if sport is None:
            logging.debug("No sport with name: '%s'", str(sport_name))
            if add is not None:
                logging.debug("Adding sport '%s'", str(sport_name))
                new_sport = Sport()
                new_sport.name = unicode(sport_name)
                sport = self._sport_service.store_sport(new_sport)
        return None if sport is None else sport.id
Ejemplo n.º 26
0
 def on_newsport_accept_clicked(self,widget):
     sport = Sport()
     sport.name = gtk_str(self.newsportentry.get_text())
     sport.met = self._trim_to_null(gtk_str(self.newmetentry.get_text()))
     sport.weight = self._float_or_zero(gtk_str(self.newweightentry.get_text()))
     sport.max_pace = self._trim_to_null(gtk_str(self.newmaxpace.get_text()))
     sport.color = self.stored_color
     if sport.name.lower() in [s.name.lower() for s in self._sport_service.get_all_sports()]:
         msg = "Sport '%s' already exists" % sport.name
         logging.error(msg)
         md = Gtk.MessageDialog(None, Gtk.DialogFlags.DESTROY_WITH_PARENT, Gtk.MessageType.ERROR, Gtk.ButtonsType.CLOSE, _(msg))
         md.set_title(_("Sport Creation Error"))
         md.run()
         md.destroy()
         return
     self._sport_service.store_sport(sport)
     self.pytrainer_main.refreshMainSportList()
     self.on_switch_page(None,None,2)
     self.hidesportsteps()
     self.buttonbox.set_sensitive(1)
     self.sportlist.show()
Ejemplo n.º 27
0
 def on_newsport_accept_clicked(self,widget):
     sport = Sport()
     sport.name = unicode(self.newsportentry.get_text())
     sport.met = self._trim_to_null(self.newmetentry.get_text())
     sport.weight = self.newweightentry.get_text()
     sport.max_pace = self._trim_to_null(self.newmaxpace.get_text())
     sport.color = self.stored_color
     if sport.name.lower() in [s.name.lower() for s in self._sport_service.get_all_sports()]:
         msg = "Sport '%s' already exists" % sport.name
         logging.error(msg)
         md = gtk.MessageDialog(None, gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_ERROR, gtk.BUTTONS_CLOSE, _(msg))
         md.set_title(_("Sport Creation Error"))
         md.run()
         md.destroy()
         return
     self._sport_service.store_sport(sport)
     self.parent.actualize_mainsportlist()
     self.on_switch_page(None,None,2)
     self.hidesportsteps()
     self.buttonbox.set_sensitive(1)
     self.sportlist.show()
Ejemplo n.º 28
0
 def test_store_sport_should_insert_row_when_sport_has_no_id(self):
     sport = Sport()
     sport.name = u"Test name"
     sport = self.sport_service.store_sport(sport)
     self.assertEquals(1, sport.id)
Ejemplo n.º 29
0
 def test_get_sport_returns_sport_with_id(self):
     sport = Sport()
     sport.name = u"Test name"
     self.sport_service.store_sport(sport)
     sport = self.sport_service.get_sport(1)
     self.assertEqual(1, sport.id)
Ejemplo n.º 30
0
 def test_get_sport_returns_sport_with_id(self):
     sport = Sport()
     sport.name = u"Test name"
     self.sport_service.store_sport(sport)
     sport = self.sport_service.get_sport(1)
     self.assertEquals(1, sport.id)
Ejemplo n.º 31
0
 def test_get_sport_by_name_returns_sport_with_name(self):
     sport1 = Sport()
     sport1.name = u"rugby"
     self.sport_service.store_sport(sport1)
     sport2 = self.sport_service.get_sport_by_name("rugby")
     self.assertEquals(u"rugby", sport2.name)
Ejemplo n.º 32
0
 def test_store_sport_should_insert_row_when_sport_has_no_id(self):
     sport = Sport()
     sport.name = u"Test name"
     sport = self.sport_service.store_sport(sport)
     self.assertEqual(1, sport.id)
Ejemplo n.º 33
0
 def test_name_should_accept_unicode_string(self):
     sport = Sport()
     sport.name = u"Unicycling"
     self.assertEquals(u"Unicycling", sport.name)
Ejemplo n.º 34
0
 def test_get_sport_by_name_returns_sport_with_name(self):
     sport1 = Sport()
     sport1.name = u"rugby"
     self.sport_service.store_sport(sport1)
     sport2 = self.sport_service.get_sport_by_name("rugby")
     self.assertEqual(u"rugby", sport2.name)