Krinkle has uploaded a new change for review. ( 
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(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/44/338044/1

diff --git a/modules/webperf/files/navtiming.py 
b/modules/webperf/files/navtiming.py
index 3a88470..6035b00 100755
--- a/modules/webperf/files/navtiming.py
+++ b/modules/webperf/files/navtiming.py
@@ -323,11 +323,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..33a8f38 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: newchange
Gerrit-Change-Id: I699c61e3ae20e2f0653213c213d107b9be730e63
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Krinkle <krinklem...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to