本文整理汇总了Python中tapiriik.services.interchange.Activity.StartTime方法的典型用法代码示例。如果您正苦于以下问题:Python Activity.StartTime方法的具体用法?Python Activity.StartTime怎么用?Python Activity.StartTime使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tapiriik.services.interchange.Activity
的用法示例。
在下文中一共展示了Activity.StartTime方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_svc_level_dupe
# 需要导入模块: from tapiriik.services.interchange import Activity [as 别名]
# 或者: from tapiriik.services.interchange.Activity import StartTime [as 别名]
def test_svc_level_dupe(self):
''' check that service-level duplicate activities are caught (no DB involvement) '''
svcA, svcB = TestTools.create_mock_services()
recA = TestTools.create_mock_svc_record(svcA)
recB = TestTools.create_mock_svc_record(svcB)
actA = Activity()
actA.StartTime = datetime(1, 2, 3, 4, 5, 6, 7)
actA.ServiceDataCollection = TestTools.create_mock_servicedatacollection(svcA, record=recA)
actB = Activity()
actB.StartTime = actA.StartTime
actB.ServiceDataCollection = TestTools.create_mock_servicedatacollection(svcB, record=recB)
actA.CalculateUID()
actB.CalculateUID()
activities = []
Sync._accumulateActivities(recA, [actA], activities)
Sync._accumulateActivities(recB, [actB], activities)
self.assertEqual(len(activities), 1)
示例2: test_activity_deduplicate_tzerror
# 需要导入模块: from tapiriik.services.interchange import Activity [as 别名]
# 或者: from tapiriik.services.interchange.Activity import StartTime [as 别名]
def test_activity_deduplicate_tzerror(self):
''' Test that probably-duplicate activities with starttimes like 09:12:22 and 15:12:22 (on the same day) are recognized as one '''
svcA, svcB = TestTools.create_mock_services()
actA = TestTools.create_random_activity(svcA, tz=pytz.timezone("America/Iqaluit"))
actB = Activity()
actB.StartTime = actA.StartTime.replace(tzinfo=pytz.timezone("America/Denver")) + timedelta(hours=5)
actB.UploadedTo = [TestTools.create_mock_upload_record(svcB)]
actA.Name = "Not this"
actB.Name = "Heya"
actB.Type = ActivityType.Walking
actA.CalculateUID()
actB.CalculateUID()
activities = []
Sync._accumulateActivities(Service.FromID("mockB"), [copy.deepcopy(actB)], activities)
Sync._accumulateActivities(Service.FromID("mockA"), [copy.deepcopy(actA)], activities)
self.assertEqual(len(activities), 1)
# Ensure that it is an exact match
actB.StartTime = actA.StartTime.replace(tzinfo=pytz.timezone("America/Denver")) + timedelta(hours=5, seconds=1)
activities = []
Sync._accumulateActivities(Service.FromID("mockB"), [copy.deepcopy(actB)], activities)
Sync._accumulateActivities(Service.FromID("mockA"), [copy.deepcopy(actA)], activities)
self.assertEqual(len(activities), 2)
# Ensure that overly large differences >14hr - not possible via TZ differences - are not deduplicated
actB.StartTime = actA.StartTime.replace(tzinfo=pytz.timezone("America/Denver")) + timedelta(hours=15)
activities = []
Sync._accumulateActivities(Service.FromID("mockB"), [copy.deepcopy(actB)], activities)
Sync._accumulateActivities(Service.FromID("mockA"), [copy.deepcopy(actA)], activities)
self.assertEqual(len(activities), 2)
示例3: test_round_precise_time
# 需要导入模块: from tapiriik.services.interchange import Activity [as 别名]
# 或者: from tapiriik.services.interchange.Activity import StartTime [as 别名]
def test_round_precise_time(self):
''' Some services might return really exact times, while others would round to the second - needs to be accounted for in hash algo '''
actA = Activity()
actA.StartTime = datetime(1, 2, 3, 4, 5, 6, 7)
actB = Activity()
actB.StartTime = datetime(1, 2, 3, 4, 5, 6, 7) + timedelta(0, 0.1337)
actA.CalculateUID()
actB.CalculateUID()
self.assertEqual(actA.UID, actB.UID)
示例4: test_svc_supported_activity_types
# 需要导入模块: from tapiriik.services.interchange import Activity [as 别名]
# 或者: from tapiriik.services.interchange.Activity import StartTime [as 别名]
def test_svc_supported_activity_types(self):
''' check that only activities are only sent to services which support them '''
svcA, svcB = TestTools.create_mock_services()
recA = TestTools.create_mock_svc_record(svcA)
recB = TestTools.create_mock_svc_record(svcB)
svcA.SupportedActivities = [ActivityType.CrossCountrySkiing]
svcB.SupportedActivities = [ActivityType.Cycling]
actA = Activity()
actA.StartTime = datetime(1, 2, 3, 4, 5, 6, 7)
actA.ServiceDataCollection = TestTools.create_mock_servicedatacollection(svcA, record=recA)
actA.Type = svcA.SupportedActivities[0]
actA.CalculateUID()
actA.UIDs = set([actA.UID])
actA.Record = ActivityRecord.FromActivity(actA)
actB = Activity()
actB.StartTime = datetime(5, 6, 7, 8, 9, 10, 11)
actB.ServiceDataCollection = TestTools.create_mock_servicedatacollection(svcB, record=recB)
actB.Type = [x for x in svcB.SupportedActivities if x != actA.Type][0]
actB.CalculateUID()
actB.UIDs = set([actB.UID])
actB.Record = ActivityRecord.FromActivity(actB)
s = SynchronizationTask(None)
s._serviceConnections = [recA, recB]
s._activities = []
s._accumulateActivities(recA, [actA])
s._accumulateActivities(recB, [actB])
syncToA = s._determineRecipientServices(actA)
syncToB = s._determineRecipientServices(actB)
self.assertEqual(len(syncToA), 0)
self.assertEqual(len(syncToB), 0)
svcB.SupportedActivities = svcA.SupportedActivities
syncToA = s._determineRecipientServices(actA)
syncToB = s._determineRecipientServices(actB)
self.assertEqual(len(syncToA), 1)
self.assertEqual(len(syncToB), 0)
svcB.SupportedActivities = svcA.SupportedActivities = [ActivityType.CrossCountrySkiing, ActivityType.Cycling]
syncToA = s._determineRecipientServices(actA)
syncToB = s._determineRecipientServices(actB)
self.assertEqual(len(syncToA), 1)
self.assertEqual(len(syncToB), 1)
示例5: test_activity_coalesce
# 需要导入模块: from tapiriik.services.interchange import Activity [as 别名]
# 或者: from tapiriik.services.interchange.Activity import StartTime [as 别名]
def test_activity_coalesce(self):
''' ensure that activity data is getting coalesced by _accumulateActivities '''
svcA, svcB = TestTools.create_mock_services()
recA = TestTools.create_mock_svc_record(svcA)
recB = TestTools.create_mock_svc_record(svcB)
actA = TestTools.create_random_activity(svcA, tz=pytz.timezone("America/Iqaluit"))
actB = Activity()
actB.StartTime = actA.StartTime.replace(tzinfo=None)
actB.ServiceDataCollection = TestTools.create_mock_servicedatacollection(svcB)
actA.Name = "Not this"
actA.Private = True
actB.Name = "Heya"
actB.Type = ActivityType.Walking
actA.CalculateUID()
actB.CalculateUID()
activities = []
Sync._accumulateActivities(recB, [copy.deepcopy(actB)], activities)
Sync._accumulateActivities(recA, [copy.deepcopy(actA)], activities)
self.assertEqual(len(activities), 1)
act = activities[0]
self.assertEqual(act.StartTime, actA.StartTime)
self.assertEqual(act.EndTime, actA.EndTime)
self.assertEqual(act.EndTime.tzinfo, actA.StartTime.tzinfo)
self.assertEqual(act.StartTime.tzinfo, actA.StartTime.tzinfo)
self.assertEqual(act.Waypoints, actA.Waypoints)
self.assertTrue(act.Private) # Most restrictive setting
self.assertEqual(act.Name, actB.Name) # The first activity takes priority.
self.assertEqual(act.Type, actB.Type) # Same here.
self.assertTrue(list(actB.ServiceDataCollection.keys())[0] in act.ServiceDataCollection)
self.assertTrue(list(actA.ServiceDataCollection.keys())[0] in act.ServiceDataCollection)
activities = []
Sync._accumulateActivities(recA, [copy.deepcopy(actA)], activities)
Sync._accumulateActivities(recB, [copy.deepcopy(actB)], activities)
self.assertEqual(len(activities), 1)
act = activities[0]
self.assertEqual(act.StartTime, actA.StartTime)
self.assertEqual(act.EndTime, actA.EndTime)
self.assertEqual(act.EndTime.tzinfo, actA.StartTime.tzinfo)
self.assertEqual(act.StartTime.tzinfo, actA.StartTime.tzinfo)
self.assertEqual(act.Waypoints, actA.Waypoints)
self.assertEqual(act.Name, actA.Name) # The first activity takes priority.
self.assertEqual(act.Type, actB.Type) # Exception: ActivityType.Other does not take priority
self.assertTrue(list(actB.ServiceDataCollection.keys())[0] in act.ServiceDataCollection)
self.assertTrue(list(actA.ServiceDataCollection.keys())[0] in act.ServiceDataCollection)
actA.Type = ActivityType.CrossCountrySkiing
activities = []
Sync._accumulateActivities(recA, [copy.deepcopy(actA)], activities)
Sync._accumulateActivities(recB, [copy.deepcopy(actB)], activities)
self.assertEqual(len(activities), 1)
act = activities[0]
self.assertEqual(act.Type, actA.Type) # Here, it will take priority.
示例6: test_svc_supported_activity_types
# 需要导入模块: from tapiriik.services.interchange import Activity [as 别名]
# 或者: from tapiriik.services.interchange.Activity import StartTime [as 别名]
def test_svc_supported_activity_types(self):
''' check that only activities are only sent to services which support them '''
svcA, svcB = TestTools.create_mock_services()
svcA.SupportedActivities = [ActivityType.CrossCountrySkiing]
svcB.SupportedActivities = [ActivityType.Cycling]
actA = Activity()
actA.StartTime = datetime(1, 2, 3, 4, 5, 6, 7)
actA.UploadedTo = [TestTools.create_mock_upload_record(svcA)]
actA.Type = svcA.SupportedActivities[0]
actB = Activity()
actB.StartTime = datetime(5, 6, 7, 8, 9, 10, 11)
actB.UploadedTo = [TestTools.create_mock_upload_record(svcB)]
actB.Type = [x for x in svcB.SupportedActivities if x != actA.Type][0]
actA.CalculateUID()
actB.CalculateUID()
allConns = [actA.UploadedTo[0]["Connection"], actB.UploadedTo[0]["Connection"]]
activities = []
Sync._accumulateActivities(svcA, [actA], activities)
Sync._accumulateActivities(svcB, [actB], activities)
syncToA = Sync._determineRecipientServices(actA, allConns)
syncToB = Sync._determineRecipientServices(actB, allConns)
self.assertEqual(len(syncToA), 0)
self.assertEqual(len(syncToB), 0)
svcB.SupportedActivities = svcA.SupportedActivities
syncToA = Sync._determineRecipientServices(actA, allConns)
syncToB = Sync._determineRecipientServices(actB, allConns)
self.assertEqual(len(syncToA), 1)
self.assertEqual(len(syncToB), 0)
svcB.SupportedActivities = svcA.SupportedActivities = [ActivityType.CrossCountrySkiing, ActivityType.Cycling]
syncToA = Sync._determineRecipientServices(actA, allConns)
syncToB = Sync._determineRecipientServices(actB, allConns)
self.assertEqual(len(syncToA), 1)
self.assertEqual(len(syncToB), 1)
示例7: test_activity_deduplicate_tzerror
# 需要导入模块: from tapiriik.services.interchange import Activity [as 别名]
# 或者: from tapiriik.services.interchange.Activity import StartTime [as 别名]
def test_activity_deduplicate_tzerror(self):
''' Test that probably-duplicate activities with starttimes like 09:12:22 and 15:12:22 (on the same day) are recognized as one '''
svcA, svcB = TestTools.create_mock_services()
recA = TestTools.create_mock_svc_record(svcA)
recB = TestTools.create_mock_svc_record(svcB)
actA = TestTools.create_random_activity(svcA, tz=pytz.timezone("America/Iqaluit"))
actB = Activity()
actB.StartTime = actA.StartTime.replace(tzinfo=pytz.timezone("America/Denver")) + timedelta(hours=5)
actB.ServiceDataCollection = TestTools.create_mock_servicedatacollection(svcB)
actA.Name = "Not this"
actB.Name = "Heya"
actB.Type = ActivityType.Walking
actA.CalculateUID()
actB.CalculateUID()
s = SynchronizationTask(None)
s._activities = []
s._accumulateActivities(recB, [copy.deepcopy(actB)])
s._accumulateActivities(recA, [copy.deepcopy(actA)])
self.assertEqual(len(s._activities), 1)
# Ensure that it is deduplicated on non-exact match
actB.StartTime = actA.StartTime.replace(tzinfo=pytz.timezone("America/Denver")) + timedelta(hours=5, seconds=1)
s._activities = []
s._accumulateActivities(recB, [copy.deepcopy(actB)])
s._accumulateActivities(recA, [copy.deepcopy(actA)])
self.assertEqual(len(s._activities), 1)
# Ensure that it is *not* deduplicated when it really doesn't match
actB.StartTime = actA.StartTime.replace(tzinfo=pytz.timezone("America/Denver")) + timedelta(hours=5, minutes=7)
s._activities = []
s._accumulateActivities(recB, [copy.deepcopy(actB)])
s._accumulateActivities(recA, [copy.deepcopy(actA)])
self.assertEqual(len(s._activities), 2)
# Ensure that overly large differences >38hr - not possible via TZ differences & shamefully bad import/export code on the part of some services - are not deduplicated
actB.StartTime = actA.StartTime.replace(tzinfo=pytz.timezone("America/Denver")) + timedelta(hours=50)
s._activities = []
s._accumulateActivities(recB, [copy.deepcopy(actB)])
s._accumulateActivities(recA, [copy.deepcopy(actA)])
self.assertEqual(len(s._activities), 2)
示例8: test_svc_level_dupe
# 需要导入模块: from tapiriik.services.interchange import Activity [as 别名]
# 或者: from tapiriik.services.interchange.Activity import StartTime [as 别名]
def test_svc_level_dupe(self):
''' check that service-level duplicate activities are caught (no DB involvement) '''
svcA, svcB = TestTools.create_mock_services()
actA = Activity()
actA.StartTime = datetime(1, 2, 3, 4, 5, 6, 7)
actA.UploadedTo = [TestTools.create_mock_upload_record(svcA)]
actB = Activity()
actB.StartTime = actA.StartTime
actB.UploadedTo = [TestTools.create_mock_upload_record(svcB)]
actA.CalculateUID()
actB.CalculateUID()
activities = []
Sync._accumulateActivities(Service.FromID("mockA"), [actA], activities)
Sync._accumulateActivities(Service.FromID("mockB"), [actB], activities)
self.assertEqual(len(activities), 1)
示例9: create_blank_activity
# 需要导入模块: from tapiriik.services.interchange import Activity [as 别名]
# 或者: from tapiriik.services.interchange.Activity import StartTime [as 别名]
def create_blank_activity(svc=None, actType=ActivityType.Other, record=None):
act = Activity()
act.Type = actType
if svc:
act.UploadedTo = [TestTools.create_mock_upload_record(svc, record)]
act.StartTime = datetime.now()
act.EndTime = act.StartTime + timedelta(seconds=42)
act.CalculateUID()
return act
示例10: test_svc_level_dupe_tz_irregular
# 需要导入模块: from tapiriik.services.interchange import Activity [as 别名]
# 或者: from tapiriik.services.interchange.Activity import StartTime [as 别名]
def test_svc_level_dupe_tz_irregular(self):
''' check that service-level duplicate activities with irregular TZs are caught '''
svcA, svcB = TestTools.create_mock_services()
actA = Activity()
actA.StartTime = pytz.timezone("America/Edmonton").localize(datetime(1, 2, 3, 4, 5, 6, 7))
actA.UploadedTo = [TestTools.create_mock_upload_record(svcA)]
actB = Activity()
actB.StartTime = actA.StartTime.astimezone(pytz.timezone("America/Iqaluit"))
actB.UploadedTo = [TestTools.create_mock_upload_record(svcB)]
actA.CalculateUID()
actB.CalculateUID()
activities = []
Sync._accumulateActivities(Service.FromID("mockA"), [actA], activities)
Sync._accumulateActivities(Service.FromID("mockB"), [actB], activities)
self.assertEqual(len(activities), 1)
示例11: test_svc_level_dupe_tz_nonuniform
# 需要导入模块: from tapiriik.services.interchange import Activity [as 别名]
# 或者: from tapiriik.services.interchange.Activity import StartTime [as 别名]
def test_svc_level_dupe_tz_nonuniform(self):
''' check that service-level duplicate activities with non-uniform TZs are caught '''
svcA, svcB = TestTools.create_mock_services()
actA = Activity()
actA.StartTime = datetime(1, 2, 3, 4, 5, 6, 7)
actA.UploadedTo = [TestTools.create_mock_upload_record(svcA)]
actB = Activity()
actB.StartTime = pytz.timezone("America/Denver").localize(actA.StartTime)
actB.UploadedTo = [TestTools.create_mock_upload_record(svcB)]
actA.CalculateUID()
actB.CalculateUID()
activities = []
Sync._accumulateActivities(Service.FromID("mockA"), [actA], activities)
Sync._accumulateActivities(Service.FromID("mockB"), [actB], activities)
self.assertEqual(len(activities), 1)
示例12: create_blank_activity
# 需要导入模块: from tapiriik.services.interchange import Activity [as 别名]
# 或者: from tapiriik.services.interchange.Activity import StartTime [as 别名]
def create_blank_activity(svc=None, actType=ActivityType.Other, record=None):
act = Activity()
act.Type = actType
if svc:
record = record if record else TestTools.create_mock_svc_record(svc)
act.ServiceDataCollection = TestTools.create_mock_servicedatacollection(svc, record=record)
act.StartTime = datetime.now()
act.EndTime = act.StartTime + timedelta(seconds=42)
act.CalculateUID()
return act
示例13: test_activity_coalesce
# 需要导入模块: from tapiriik.services.interchange import Activity [as 别名]
# 或者: from tapiriik.services.interchange.Activity import StartTime [as 别名]
def test_activity_coalesce(self):
''' ensure that activity data is getting coalesced by _accumulateActivities '''
svcA, svcB = TestTools.create_mock_services()
actA = TestTools.create_random_activity(svcA, tz=pytz.timezone("America/Iqaluit"))
actB = Activity()
actB.StartTime = actA.StartTime.replace(tzinfo=None)
actB.UploadedTo = [TestTools.create_mock_upload_record(svcB)]
actA.Name = "Not this"
actB.Name = "Heya"
actB.Type = ActivityType.Walking
actA.CalculateUID()
actB.CalculateUID()
activities = []
Sync._accumulateActivities(Service.FromID("mockB"), [copy.deepcopy(actB)], activities)
Sync._accumulateActivities(Service.FromID("mockA"), [copy.deepcopy(actA)], activities)
self.assertEqual(len(activities), 1)
act = activities[0]
self.assertEqual(act.StartTime, actA.StartTime)
self.assertEqual(act.EndTime, actA.EndTime)
self.assertEqual(act.EndTime.tzinfo, actA.StartTime.tzinfo)
self.assertEqual(act.StartTime.tzinfo, actA.StartTime.tzinfo)
self.assertEqual(act.Waypoints, actA.Waypoints)
self.assertEqual(act.Name, actB.Name) # The first activity takes priority.
self.assertEqual(act.Type, actB.Type) # Same here.
self.assertTrue(actB.UploadedTo[0] in act.UploadedTo)
self.assertTrue(actA.UploadedTo[0] in act.UploadedTo)
activities = []
Sync._accumulateActivities(Service.FromID("mockA"), [copy.deepcopy(actA)], activities)
Sync._accumulateActivities(Service.FromID("mockB"), [copy.deepcopy(actB)], activities)
self.assertEqual(len(activities), 1)
act = activities[0]
self.assertEqual(act.StartTime, actA.StartTime)
self.assertEqual(act.EndTime, actA.EndTime)
self.assertEqual(act.EndTime.tzinfo, actA.StartTime.tzinfo)
self.assertEqual(act.StartTime.tzinfo, actA.StartTime.tzinfo)
self.assertEqual(act.Waypoints, actA.Waypoints)
self.assertEqual(act.Name, actA.Name) # The first activity takes priority.
self.assertEqual(act.Type, actB.Type) # Exception: ActivityType.Other does not take priority
self.assertTrue(actB.UploadedTo[0] in act.UploadedTo)
self.assertTrue(actA.UploadedTo[0] in act.UploadedTo)
actA.Type = ActivityType.CrossCountrySkiing
activities = []
Sync._accumulateActivities(Service.FromID("mockA"), [copy.deepcopy(actA)], activities)
Sync._accumulateActivities(Service.FromID("mockB"), [copy.deepcopy(actB)], activities)
self.assertEqual(len(activities), 1)
act = activities[0]
self.assertEqual(act.Type, actA.Type) # Here, it will take priority.
示例14: test_svc_level_dupe_tz_irregular
# 需要导入模块: from tapiriik.services.interchange import Activity [as 别名]
# 或者: from tapiriik.services.interchange.Activity import StartTime [as 别名]
def test_svc_level_dupe_tz_irregular(self):
''' check that service-level duplicate activities with irregular TZs are caught '''
svcA, svcB = TestTools.create_mock_services()
recA = TestTools.create_mock_svc_record(svcA)
recB = TestTools.create_mock_svc_record(svcB)
actA = Activity()
actA.StartTime = pytz.timezone("America/Edmonton").localize(datetime(1, 2, 3, 4, 5, 6, 7))
actA.ServiceDataCollection = TestTools.create_mock_servicedatacollection(svcA, record=recA)
actB = Activity()
actB.StartTime = actA.StartTime.astimezone(pytz.timezone("America/Iqaluit"))
actB.ServiceDataCollection = TestTools.create_mock_servicedatacollection(svcB, record=recB)
actA.CalculateUID()
actB.CalculateUID()
activities = []
Sync._accumulateActivities(recA, [actA], activities)
Sync._accumulateActivities(recB, [actB], activities)
self.assertEqual(len(activities), 1)
示例15: test_svc_level_dupe_tz_nonuniform
# 需要导入模块: from tapiriik.services.interchange import Activity [as 别名]
# 或者: from tapiriik.services.interchange.Activity import StartTime [as 别名]
def test_svc_level_dupe_tz_nonuniform(self):
''' check that service-level duplicate activities with non-uniform TZs are caught '''
svcA, svcB = TestTools.create_mock_services()
recA = TestTools.create_mock_svc_record(svcA)
recB = TestTools.create_mock_svc_record(svcB)
actA = Activity()
actA.StartTime = datetime(1, 2, 3, 4, 5, 6, 7)
actA.ServiceDataCollection = TestTools.create_mock_servicedatacollection(svcA, record=recA)
actB = Activity()
actB.StartTime = pytz.timezone("America/Denver").localize(actA.StartTime)
actB.ServiceDataCollection = TestTools.create_mock_servicedatacollection(svcB, record=recB)
actA.CalculateUID()
actB.CalculateUID()
activities = []
Sync._accumulateActivities(recA, [actA], activities)
Sync._accumulateActivities(recB, [actB], activities)
self.assertEqual(len(activities), 1)