Ottomata has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/338044 )
Change subject: navtiming: Make tests easier to extend
......................................................................
navtiming: Make tests easier to extend
Convert unit test data to have a 1:many mapping between expected
results and inputs to parse_ua(). This will make it easier to
add new versions of the inputs in I85323b6997.
Change-Id: I699c61e3ae20e2f0653213c213d107b9be730e63
---
M modules/webperf/files/navtiming.py
M modules/webperf/files/navtiming_ua_data.yaml
2 files changed, 57 insertions(+), 57 deletions(-)
Approvals:
Krinkle: Looks good to me, but someone else must approve
Ottomata: Verified; Looks good to me, approved
diff --git a/modules/webperf/files/navtiming.py
b/modules/webperf/files/navtiming.py
index 172f7b2..22169f1 100755
--- a/modules/webperf/files/navtiming.py
+++ b/modules/webperf/files/navtiming.py
@@ -317,11 +317,13 @@
with open('navtiming_ua_data.yaml') as f:
data = yaml.safe_load(f)
for case in data:
- if case['result']:
- expect = tuple(case['result'].split('.'))
- else:
+ if case == 'Other._':
expect = None
- self.assertEqual(
- parse_ua(case['ua']),
- expect
- )
+ else:
+ expect = tuple(case.split('.'))
+ uas = data.get(case)
+ for ua in uas:
+ self.assertEqual(
+ parse_ua(ua),
+ expect
+ )
diff --git a/modules/webperf/files/navtiming_ua_data.yaml
b/modules/webperf/files/navtiming_ua_data.yaml
index d8f2ca8..5710225 100644
--- a/modules/webperf/files/navtiming_ua_data.yaml
+++ b/modules/webperf/files/navtiming_ua_data.yaml
@@ -1,61 +1,59 @@
-# https://developer.chrome.com/multidevice/user-agent#webview_user_agent
-- result: Android.4
- ua: 'Mozilla/5.0 (Linux; U; Android 4.1.1; en-gb; Build/KLP)
AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'
-- result: Android.4
- ua: 'Mozilla/5.0 (Linux; Android 4.4; Nexus 5 Build/_BuildID_)
AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile
Safari/537.36'
-- result: Android.5
- ua: 'Mozilla/5.0 (Linux; Android 5.1.1; Nexus 5 Build/LMY48B; wv)
AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/43.0.2357.65 Mobile
Safari/537.36'
+Android.4:
+ # https://developer.chrome.com/multidevice/user-agent#webview_user_agent
+ - 'Mozilla/5.0 (Linux; U; Android 4.1.1; en-gb; Build/KLP)
AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30'
+ - 'Mozilla/5.0 (Linux; Android 4.4; Nexus 5 Build/_BuildID_)
AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile
Safari/537.36'
+Android.5:
+ - 'Mozilla/5.0 (Linux; Android 5.1.1; Nexus 5 Build/LMY48B; wv)
AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/43.0.2357.65 Mobile
Safari/537.36'
-- result: Chromium.10
- ua: 'Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.16 (KHTML, like
Gecko) Ubuntu/10.10 Chromium/10.0.648.133 Chrome/10.0.648.133 Safari/534.16'
-- result: Chrome.50
- ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/50.0.2652.0 Safari/537.36'
-- result: Chrome_Mobile.35
- ua: 'Mozilla/5.0 (Linux; Android 4.4.2; Nexus 5 Build/KOT49H)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.122 Mobile
Safari/537.36'
+Chromium.10:
+ - 'Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/534.16 (KHTML, like
Gecko) Ubuntu/10.10 Chromium/10.0.648.133 Chrome/10.0.648.133 Safari/534.16'
+Chrome.50:
+ - 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/50.0.2652.0 Safari/537.36'
+Chrome_Mobile.35:
+ - 'Mozilla/5.0 (Linux; Android 4.4.2; Nexus 5 Build/KOT49H)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.122 Mobile
Safari/537.36'
+Chrome_Mobile_iOS.19:
+ - 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_1_1 like Mac OS X; en-gb)
AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/19.0.1084.60 Mobile/9B206
Safari/7534.48.3'
-- result: Chrome_Mobile_iOS.19
- ua: 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_1_1 like Mac OS X; en-gb)
AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/19.0.1084.60 Mobile/9B206
Safari/7534.48.3'
+Firefox.43:
+ - 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:43.0) Gecko/20100101
Firefox/43.0'
+Firefox_Mobile.41:
+ - 'Mozilla/5.0 (Android 5.0; Tablet; rv:41.0) Gecko/41.0 Firefox/41.0'
-- result: Firefox.43
- ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:43.0) Gecko/20100101
Firefox/43.0'
-- result: Firefox_Mobile.41
- ua: 'Mozilla/5.0 (Android 5.0; Tablet; rv:41.0) Gecko/41.0 Firefox/41.0'
+Opera.9:
+ - 'Opera/9.50 (Nintendo DSi; Opera/507; U; en-US)'
+Opera.10:
+ - 'Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.5.24 Version/10.53'
+Opera.33:
+ - 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36 OPR/33.0.1990.115'
-- result: Opera.9
- ua: 'Opera/9.50 (Nintendo DSi; Opera/507; U; en-US)'
-- result: Opera.10
- ua: 'Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.5.24 Version/10.53'
-- result: Opera.33
- ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36 OPR/33.0.1990.115'
+Opera_Mobile.14:
+ - 'Mozilla/5.0 (Linux; Android; 4.1.2; GT) AppleWebKit/537.22 (KHTML, like
Gecko) Chrome/25.0.1234.12 Mobile Safari/537.22 OPR/14.0.123.123'
-- result: Opera_Mobile.14
- ua: 'Mozilla/5.0 (Linux; Android; 4.1.2; GT) AppleWebKit/537.22 (KHTML, like
Gecko) Chrome/25.0.1234.12 Mobile Safari/537.22 OPR/14.0.123.123'
+Edge.12:
+ - 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.9600'
-- result: Edge.12
- ua: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.9600'
+MSIE.11:
+ - 'Mozilla/5.0 (Windows NT 6.3; Win64; x64; Trident/7.0; rv:11.0) like Gecko'
+MSIE.10:
+ - 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0)'
+MSIE.8:
+ - 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6;
.NET CLR 2.0.50727; .NET CLR 1.1.4322)'
-- result: MSIE.11
- ua: 'Mozilla/5.0 (Windows NT 6.3; Win64; x64; Trident/7.0; rv:11.0) like
Gecko'
-- result: MSIE.10
- ua: 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0)'
-- result: MSIE.8
- ua: 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6;
.NET CLR 2.0.50727; .NET CLR 1.1.4322)'
+Safari.9:
+ - 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/601.4.4
(KHTML, like Gecko) Version/9.0.3 Safari/601.4.4'
-- result: Safari.9
- ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/601.4.4
(KHTML, like Gecko) Version/9.0.3 Safari/601.4.4'
+Mobile_Safari.4_0:
+ - 'Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us)
AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B367
Safari/531.21.10'
+Mobile_Safari.5_0:
+ - 'Mozilla/5.0 (iPod; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us)
AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7
Safari/6533.18.5'
+Mobile_Safari.5_0:
+ - 'Mozilla/5.0 (iPad; U; CPU OS 4_3_2 like Mac OS X; en-us)
AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari'
-- result: Mobile_Safari.4_0
- ua: 'Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us)
AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B367
Safari/531.21.10'
-- result: Mobile_Safari.5_0
- ua: 'Mozilla/5.0 (iPod; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us)
AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7
Safari/6533.18.5'
-- result: Mobile_Safari.5_0
- ua: 'Mozilla/5.0 (iPad; U; CPU OS 4_3_2 like Mac OS X; en-us)
AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari'
-
-- result: iOS_WebView.7_1
- ua: 'Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X)
AppleWebKit/537.51.2 (KHTML, like Gecko) Mobile/11D257'
-- result: 'iOS_WebView.4_3'
- ua: 'Mozilla/5.0 (iPad; U; CPU OS 4_3_2 like Mac OS X; en-us)
AppleWebKit/533.17.9 (KHTML, like Gecko) Mobile'
+iOS_WebView.7_1:
+ - 'Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X)
AppleWebKit/537.51.2 (KHTML, like Gecko) Mobile/11D257'
+iOS_WebView.4_3:
+ - 'Mozilla/5.0 (iPad; U; CPU OS 4_3_2 like Mac OS X; en-us)
AppleWebKit/533.17.9 (KHTML, like Gecko) Mobile'
# Undetected, but here to catch regressions
-- result:
- ua: 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:11.03.16) Gecko/20110302
Conkeror/0.9.2 (Debian-0.9.2)'
+Other._:
+ - 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:11.03.16) Gecko/20110302
Conkeror/0.9.2 (Debian-0.9.2)'
--
To view, visit https://gerrit.wikimedia.org/r/338044
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I699c61e3ae20e2f0653213c213d107b9be730e63
Gerrit-PatchSet: 6
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Krinkle <[email protected]>
Gerrit-Reviewer: Giuseppe Lavagetto <[email protected]>
Gerrit-Reviewer: Krinkle <[email protected]>
Gerrit-Reviewer: Ottomata <[email protected]>
Gerrit-Reviewer: Volans <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits