Esempio n. 1
0
    def __init__(self, filename=None, data_path=None):
        # Based in Django's approach -> http://code.djangoproject.com/svn/django/trunk/django/__init__.py
        self.version = __import__('pytrainer').get_version()
        #Process command line options
        self.startup_options = self.get_options()
        #Setup logging
        self.environment = Environment(platform.get_platform(),
                                       self.startup_options.conf_dir)
        self.environment.create_directories()
        self.set_logging(self.startup_options.log_level,
                         self.startup_options.log_type)
        logging.debug('>>')
        logging.debug("pytrainer version %s" % (self.version))
        self.data_path = data_path
        self.date = Date()
        self.ddbb = None
        # Checking profile
        logging.debug('Checking configuration and profile...')
        self.profile = Profile(self.environment, self.data_path, self)
        self.uc = UC()
        self.windowmain = None
        self.ddbb = DDBB(self.profile, self)
        logging.debug('connecting to DDBB')
        self.ddbb.connect()

        initialize_data(self.ddbb, self.environment.conf_dir)

        self._sport_service = SportService(self.ddbb)
        self.record = Record(self._sport_service, data_path, self)
        self.athlete = Athlete(data_path, self)
        self.stats = Stats(self._sport_service, self)
        pool_size = self.profile.getIntValue("pytraining",
                                             "activitypool_size",
                                             default=1)
        self.activitypool = ActivityPool(self, size=pool_size)
        #preparamos la ventana principal
        self.windowmain = Main(self._sport_service,
                               data_path,
                               self,
                               self.version,
                               gpxDir=self.profile.gpxdir)
        self.date = Date(self.windowmain.calendar)
        self.waypoint = Waypoint(data_path, self)
        self.extension = Extension(data_path, self)
        self.plugins = Plugins(data_path, self)
        self.importdata = Importdata(self._sport_service, data_path, self,
                                     self.profile)
        self.loadPlugins()
        self.loadExtensions()
        self.windowmain.setup()
        self.windowmain.on_calendar_selected(None)
        self.refreshMainSportList()
        self.windowmain.run()
        logging.debug('<<')
Esempio n. 2
0
 def setUp(self):
     self.ddbb = DDBB()
     self.ddbb.connect()
     self.ddbb.create_tables(add_default=True)
     self.main = mock.Mock()
     self.main.ddbb = self.ddbb
     self.main.activitypool = ActivityService(pytrainer_main=self.main)
     self.main.profile.gpxdir = '/nonexistent'
     self.record = Record(SportService(self.ddbb), parent=self.main)
     time = 7426
     distance = 46.18
     speed = distance * 3600 / time
     time_hhmmss = [time // 3600, (time / 60) % 60, time % 60]
     self.summary = {}
     self.summary['rcd_gpxfile'] = u'/nonexistent'
     self.summary['rcd_sport'] = u"Run"
     self.summary['rcd_date'] = u'2016-07-24'
     self.summary['rcd_calories'] = 1462
     self.summary['rcd_comments'] = u'test comment'
     self.summary['rcd_title'] = u'test 1'
     self.summary['rcd_time'] = time_hhmmss
     self.summary['rcd_distance'] = "%0.2f" % distance
     self.summary['rcd_pace'] = "%d.%02d" % ((3600 / speed) / 60,
                                             (3600 / speed) % 60)
     self.summary['rcd_maxpace'] = "%d.%02d" % ((3600 / 72) / 60,
                                                (3600 / 72) % 60)
     self.summary['rcd_average'] = speed
     self.summary['rcd_maxvel'] = 72
     self.summary['rcd_beats'] = 115.0
     self.summary['rcd_maxbeats'] = 120
     self.summary['rcd_upositive'] = 553.1
     self.summary['rcd_unegative'] = 564.1
     self.summary['date_time_local'] = u'2016-07-24 12:58:23+03:00'
     self.summary['date_time_utc'] = u'2016-07-24T09:58:23Z'
     self.laps = [{
         'distance': 46181.9,
         'lap_number': 0,
         'calories': 1462,
         'elapsed_time': u'7426.0',
         'intensity': u'active',
         'avg_hr': 136,
         'max_hr': 173,
         'laptrigger': u'manual'
     }]
Esempio n. 3
0
 def setUp(self):
     env = Environment()
     env.data_path = os.curdir
     env.create_directories()
     self.main = mock.Mock()
     self.main.ddbb = DDBB()
     self.main.ddbb.connect()
     self.main.ddbb.create_tables()
     self.main.profile = Profile()
     self.main.uc = UC()
     self.sport_service = SportService(self.main.ddbb)
     non_linear_sport = self.sport_service.get_sport(1)
     self.main.ddbb.session.delete(non_linear_sport)
     self.main.ddbb.session.commit()
     make_transient(non_linear_sport)
     non_linear_sport.id = None
     self.main.ddbb.session.add(non_linear_sport)
     self.main.ddbb.session.commit()
     self.main.record = Record(self.sport_service, parent=self.main)
     self.parent = Main(self.sport_service, parent=self.main)
     self.main.ddbb.session.add(
         Activity(sport=non_linear_sport,
                  date=datetime.datetime(2018, 5, 6, 10, 0, 0),
                  duration=1000,
                  distance=25))
     self.main.ddbb.session.add(
         Activity(sport=non_linear_sport,
                  date=datetime.datetime(2018, 1, 6, 10, 0, 0),
                  duration=10000,
                  distance=150))
     self.main.ddbb.session.add(
         Activity(sport=self.sport_service.get_sport(2),
                  date=datetime.datetime(2018, 1, 6, 10, 0, 0),
                  duration=10000,
                  distance=100))
     self.main.ddbb.session.commit()
Esempio n. 4
0
    def __init__(self, filename=None, data_path=None):
        # Based on Django's approach -> http://code.djangoproject.com/svn/django/trunk/django/__init__.py
        self.version = __import__('pytrainer').get_version()
        #Process command line options
        self.startup_options = self.get_options()
        #Setup logging
        self.environment = Environment(self.startup_options.conf_dir,
                                       data_path)
        self.environment.create_directories()
        self.environment.clear_temp_dir()
        self.set_logging(self.startup_options.log_level,
                         self.startup_options.log_type)
        logging.debug('>>')
        logging.info("pytrainer version %s" % (self.version))
        self.data_path = data_path

        # Checking profile
        logging.debug('Checking configuration and profile...')
        self.profile = Profile()
        # Write the default config to disk
        self.profile.saveProfile()
        self.uc = UC()
        self.profilewindow = None
        self.ddbb = DDBB(self.profile.sqlalchemy_url)
        logging.debug('connecting to DDBB')
        self.ddbb.connect()

        logging.info('Checking if some upgrade action is needed...')
        initialize_data(self.ddbb, self.environment.conf_dir)

        # Loading shared services
        logging.debug('Loading sport service...')
        self._sport_service = SportService(self.ddbb)
        logging.debug('Loading record service...')
        self.record = Record(self._sport_service, data_path, self)
        logging.debug('Loading athlete service...')
        self.athlete = Athlete(data_path, self)
        logging.debug('Loading stats service...')
        self.stats = Stats(self)
        logging.debug('Initializing activity pool...')
        pool_size = self.profile.getIntValue("pytraining",
                                             "activitypool_size",
                                             default=1)
        self.activitypool = ActivityService(self, size=pool_size)

        #Loading main window
        self.windowmain = None
        logging.debug('Loading main window...')
        self.windowmain = Main(self._sport_service,
                               data_path,
                               self,
                               self.version,
                               gpxDir=self.profile.gpxdir)

        # Select initial date depending on user's preference
        self.selectInitialDate()

        logging.debug('Loading waypoint service...')
        self.waypoint = WaypointService(data_path, self)
        logging.debug('Loading extension service...')
        self.extension = Extension(data_path, self)
        logging.debug('Loading plugins service...')
        self.plugins = Plugins(data_path, self)
        self.importdata = Importdata(self._sport_service, data_path, self,
                                     self.profile)
        logging.debug('Loading plugins...')
        self.loadPlugins()
        logging.debug('Loading extensions...')
        self.loadExtensions()
        logging.debug('Setting values for graphs, maps and waypoint editor...')
        self.windowmain.setup()
        self.windowmain.on_calendar_selected(None)
        logging.debug('Refreshing sport list... is this needed?')
        self.refreshMainSportList()
        logging.debug('Launching main window...')
        self.windowmain.run()
        logging.debug('<<')
Esempio n. 5
0
 def setUp(self):
     self.mock_ddbb = mock.Mock(spec=Sql)
     self.sport_service = SportService(self.mock_ddbb)
Esempio n. 6
0
 def setUp(self):
     self.mock_ddbb = DDBB()
     self.mock_ddbb.connect()
     self.mock_ddbb.create_tables(add_default=False)
     self.sport_service = SportService(self.mock_ddbb)