Example #1
0
 def test_measurement_system(self):
     result = Attributes.measurements_type(
         self.garmin_db, fitfile.field_enums.DisplayMeasure.metric)
     self.assertEqual(result, fitfile.field_enums.DisplayMeasure.metric)
     for value in fitfile.field_enums.DisplayMeasure:
         Attributes.set(self.garmin_db, 'measurement_system', value)
         result = Attributes.measurements_type(self.garmin_db)
         self.assertEqual(result, value)
Example #2
0
 def test_get_default(self):
     result = Attributes.get(self.garmin_db, 'test_String')
     self.assertEqual(result, None)
     result = Attributes.get(self.garmin_db, 'test_String', 'default_value')
     self.assertEqual(result, 'default_value')
     #
     result = Attributes.get_string(self.garmin_db, 'test_String')
     self.assertEqual(result, None)
     result = Attributes.get_string(self.garmin_db, 'test_String',
                                    'default_value')
     self.assertEqual(result, 'default_value')
Example #3
0
def export_activity(debug, directory, export_activity_id):
    """Export an activity given its database id."""
    garmin_db = GarminDb(db_params_dict)
    measurement_system = Attributes.measurements_type(garmin_db)
    ae = ActivityExporter(directory, export_activity_id, measurement_system, debug)
    ae.process(db_params_dict)
    return ae.write('activity_%s.tcx' % export_activity_id)
Example #4
0
 def __init__(self, output_func=logger.info, debug=False):
     """Return an instance of the CheckUp class."""
     self.db_params = ConfigManager.get_db_params()
     self.output_func = output_func
     self.debug = debug
     self.garmin_db = GarminDb(self.db_params)
     self.measurement_system = Attributes.measurements_type(self.garmin_db)
     self.unit_strings = fitfile.units.unit_strings[self.measurement_system]
Example #5
0
 def test_parse_uprofile(self):
     db_params = ConfigManager.get_db_params(test_db=True)
     gp = GarminProfile(db_params, self.file_path, debug=2)
     if gp.file_count() > 0:
         gp.process()
     gdb = GarminDb(db_params)
     measurement_system = Attributes.measurements_type(gdb)
     self.assertEqual(
         measurement_system, fitfile.field_enums.DisplayMeasure.statute,
         'DisplayMeasure expected %r found %r' %
         (fitfile.field_enums.DisplayMeasure.statute, measurement_system))
Example #6
0
 def test_get_float(self):
     Attributes.set(self.garmin_db, 'test_String', 2.2)
     result = Attributes.get_float(self.garmin_db, 'test_String')
     self.assertEqual(result, 2.2)
     result = Attributes.get_float(self.garmin_db, 'test_String',
                                   'default_value')
     self.assertEqual(result, 2.2)
     #
     Attributes.set_if_unset(self.garmin_db, 'test_String', 2.2)
     result = Attributes.get_float(self.garmin_db, 2.2)
Example #7
0
 def test_set_get_default(self):
     Attributes.set(self.garmin_db, 'test_String', 'test_value')
     result = Attributes.get_string(self.garmin_db, 'test_String')
     self.assertEqual(result, 'test_value')
     result = Attributes.get_string(self.garmin_db, 'test_String',
                                    'default_value')
     self.assertEqual(result, 'test_value')
     #
     Attributes.set_if_unset(self.garmin_db, 'test_String', 'test_value2')
     result = Attributes.get_string(self.garmin_db, 'test_String')
     self.assertEqual(result, 'test_value')
Example #8
0
def import_data(debug, latest, stats):
    """Import previously downloaded Garmin data into the database."""
    logger.info("___Importing %s Data___", 'Latest' if latest else 'All')

    # Import the user profile and/or settings FIT file first so that we can get the measurement system and some other things sorted out first.
    fit_files_dir = ConfigManager.get_or_create_fit_files_dir()
    gp = GarminProfile(db_params_dict, fit_files_dir, debug)
    if gp.file_count() > 0:
        gp.process()

    gsfd = GarminSettingsFitData(fit_files_dir, debug)
    if gsfd.file_count() > 0:
        gsfd.process_files(FitFileProcessor(db_params_dict, plugin_manager, debug))

    gdb = GarminDb(db_params_dict)
    measurement_system = Attributes.measurements_type(gdb)

    if Statistics.weight in stats:
        weight_dir = ConfigManager.get_or_create_weight_dir()
        gwd = GarminWeightData(db_params_dict, weight_dir, latest, measurement_system, debug)
        if gwd.file_count() > 0:
            gwd.process()

    if Statistics.monitoring in stats:
        monitoring_dir = ConfigManager.get_or_create_monitoring_base_dir()
        gsd = GarminSummaryData(db_params_dict, monitoring_dir, latest, measurement_system, debug)
        if gsd.file_count() > 0:
            gsd.process()

        ghd = GarminHydrationData(db_params_dict, monitoring_dir, latest, measurement_system, debug)
        if ghd.file_count() > 0:
            ghd.process()

        gfd = GarminMonitoringFitData(monitoring_dir, latest, measurement_system, debug)
        if gfd.file_count() > 0:
            gfd.process_files(MonitoringFitFileProcessor(db_params_dict, plugin_manager, debug))

    if Statistics.sleep in stats:
        sleep_dir = ConfigManager.get_or_create_sleep_dir()
        gsd = GarminSleepData(db_params_dict, sleep_dir, latest, debug)
        if gsd.file_count() > 0:
            gsd.process()

    if Statistics.rhr in stats:
        rhr_dir = ConfigManager.get_or_create_rhr_dir()
        grhrd = GarminRhrData(db_params_dict, rhr_dir, latest, debug)
        if grhrd.file_count() > 0:
            grhrd.process()

    if Statistics.activities in stats:
        activities_dir = ConfigManager.get_or_create_activities_dir()
        # Tcx fields are less precise than the JSON files, so load Tcx first and overwrite with better JSON values.
        gtd = GarminTcxData(activities_dir, latest, measurement_system, debug)
        if gtd.file_count() > 0:
            gtd.process_files(db_params_dict)

        gjsd = GarminJsonSummaryData(db_params_dict, activities_dir, latest, measurement_system, debug)
        if gjsd.file_count() > 0:
            gjsd.process()

        gdjd = GarminJsonDetailsData(db_params_dict, activities_dir, latest, measurement_system, debug)
        if gdjd.file_count() > 0:
            gdjd.process()

        gfd = GarminActivitiesFitData(activities_dir, latest, measurement_system, debug)
        if gfd.file_count() > 0:
            gfd.process_files(ActivityFitFileProcessor(db_params_dict, plugin_manager, debug))
Example #9
0
 def test_measurement_system(self):
     measurement_system = Attributes.measurements_type(
         self.garmin_db, fitfile.field_enums.DisplayMeasure.metric)
     self.assertIn(measurement_system, fitfile.field_enums.DisplayMeasure)