10
10
from connectors_qa .models import Check , CheckCategory , CheckResult
11
11
from metadata_service .validators .metadata_validator import PRE_UPLOAD_VALIDATORS , ValidatorOptions , validate_and_load # type: ignore
12
12
13
+ import pydash
13
14
14
15
class MetadataCheck (Check ):
15
16
category = CheckCategory .METADATA
@@ -99,7 +100,7 @@ class ValidateBreakingChangesDeadlines(MetadataCheck):
99
100
it's deadline is at least a week in the future.
100
101
"""
101
102
name = "Breaking change opt-in should be a week in the future"
102
- description = f "If the connector version has a breaking change, the deadline field must be set to at least a week in the future."
103
+ description = "If the connector version has a breaking change, the deadline field must be set to at least a week in the future."
103
104
104
105
def _run (self , connector : Connector ) -> CheckResult :
105
106
@@ -113,43 +114,38 @@ def _run(self, connector: Connector) -> CheckResult:
113
114
message = "Can't verify breaking changes deadline: connector version is not defined." ,
114
115
)
115
116
116
- breaking_changes = connector .metadata [ ' releases' ][ ' breakingChanges' ]
117
+ breaking_changes = pydash . get ( connector .metadata , " releases. breakingChanges" , [])
117
118
118
119
if breaking_changes is None or len (breaking_changes ) == 0 :
119
120
return self .pass_ (
120
121
connector = connector ,
121
122
message = "No breaking changes found." ,
122
123
)
123
124
124
- current_version_brekaking_changes = breaking_changes .get (current_version )
125
-
126
- if current_version_brekaking_changes is None :
125
+ current_version_breaking_changes = breaking_changes .get (current_version )
126
+ if current_version_breaking_changes is None :
127
127
return self .pass_ (
128
128
connector = connector ,
129
129
message = "No breaking changes found for the current version." ,
130
130
)
131
131
132
- upgrade_deadline = current_version_brekaking_changes .get ('upgradeDeadline' )
133
-
132
+ upgrade_deadline = current_version_breaking_changes .get ("upgradeDeadline" )
134
133
if upgrade_deadline is None :
135
134
return self .fail (
136
135
connector = connector ,
137
136
message = f"No upgrade deadline found for the breaking changes in { current_version } ." ,
138
137
)
139
138
140
139
upgrade_deadline_datetime = datetime .strptime (upgrade_deadline , "%Y-%m-%d" )
141
- one_week_from_now = datetime .now () + timedelta (weeks = 1 )
140
+ one_week_from_now = datetime .utcnow () + timedelta (weeks = 1 )
142
141
143
142
if upgrade_deadline_datetime < one_week_from_now :
144
143
return self .fail (
145
144
connector = connector ,
146
145
message = f"The upgrade deadline for the breaking changes in { current_version } is less than 7 days from today. Please extend the deadline." ,
147
146
)
148
147
149
- return self .pass_ (
150
- connector = connector ,
151
- message = "okay" ,
152
- )
148
+ return self .pass_ (connector = connector , message = "The upgrade deadline is set to at least a week in the future" )
153
149
154
150
155
151
ENABLED_CHECKS = [
0 commit comments