ubuntu-touch-coreapps-reviewers team mailing list archive
-
ubuntu-touch-coreapps-reviewers team
-
Mailing list archive
-
Message #04323
[Merge] lp:~ahayzen/ubuntu-weather-app/fix-1485262-ap-test-migrate-data into lp:ubuntu-weather-app/reboot
Andrew Hayzen has proposed merging lp:~ahayzen/ubuntu-weather-app/fix-1485262-ap-test-migrate-data into lp:ubuntu-weather-app/reboot.
Commit message:
* Add autopilot tests which check that data is migrated correctly
Requested reviews:
Ubuntu Weather Developers (ubuntu-weather-dev)
Related bugs:
Bug #1485262 in Ubuntu Weather App: "[reboot] Autopilot Testcase Needed: Data is upgraded from old version to new version"
https://bugs.launchpad.net/ubuntu-weather-app/+bug/1485262
For more details, see:
https://code.launchpad.net/~ahayzen/ubuntu-weather-app/fix-1485262-ap-test-migrate-data/+merge/268411
* Add autopilot tests which check that data is migrated correctly
This has a copy of the two JSON files from the old autopilot tests and has a database generated by the old app with settings stored. I have created two tests, one that checks if the number of locations is correct and one that checks if the locations names are correct. Once the AP tests for settings [0] land I'll add tests to ensure the settings are migrated correctly as helpers will then exist.
0 - https://code.launchpad.net/~carla-sella/ubuntu-weather-app/switch-temp-units/+merge/267459
--
Your team Ubuntu Weather Developers is requested to review the proposed merge of lp:~ahayzen/ubuntu-weather-app/fix-1485262-ap-test-migrate-data into lp:ubuntu-weather-app/reboot.
=== modified file 'app/ui/LocationsPage.qml'
--- app/ui/LocationsPage.qml 2015-08-09 00:35:46 +0000
+++ app/ui/LocationsPage.qml 2015-08-18 23:51:50 +0000
@@ -161,6 +161,8 @@
multiselectable: true
reorderable: true
+ property string name: model.name // store in property so that AP can access
+
onItemClicked: {
if (settings.addedCurrentLocation && settings.detectCurrentLocation) {
settings.current = index + 1;
=== modified file 'debian/changelog'
--- debian/changelog 2015-08-17 18:46:57 +0000
+++ debian/changelog 2015-08-18 23:51:50 +0000
@@ -35,6 +35,7 @@
* Create autopilot test which adds a location via searching (LP: #1452497)
* Create autopilot test which adds a location via cached results (LP: #1452497)
* Fix for racy search bar causing incorrect search query when typed quickly
+ * Add autopilot tests which check that data is migrated correctly (LP: #1485262)
[ Carla Sella ]
* Create autopilot test which shows the day delegate (LP: #1452491)
=== modified file 'po/com.ubuntu.weather.pot'
--- po/com.ubuntu.weather.pot 2015-08-07 00:16:54 +0000
+++ po/com.ubuntu.weather.pot 2015-08-18 23:51:50 +0000
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: ubuntu-weather-app\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-08-06 19:16-0500\n"
+"POT-Creation-Date: 2015-08-19 00:02+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@xxxxxx>\n"
@@ -18,31 +18,31 @@
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-#: ../app/components/DayDelegate.qml:199
+#: ../app/components/DayDelegate.qml:200
msgid "Chance of rain"
msgstr ""
-#: ../app/components/DayDelegate.qml:205
+#: ../app/components/DayDelegate.qml:206
msgid "Winds"
msgstr ""
-#: ../app/components/DayDelegate.qml:212
+#: ../app/components/DayDelegate.qml:213
msgid "UV Index"
msgstr ""
-#: ../app/components/DayDelegate.qml:217
+#: ../app/components/DayDelegate.qml:218
msgid "Pollen"
msgstr ""
-#: ../app/components/DayDelegate.qml:223
+#: ../app/components/DayDelegate.qml:224
msgid "Humidity"
msgstr ""
-#: ../app/components/DayDelegate.qml:229
+#: ../app/components/DayDelegate.qml:230
msgid "Sunrise"
msgstr ""
-#: ../app/components/DayDelegate.qml:235
+#: ../app/components/DayDelegate.qml:236
msgid "Sunset"
msgstr ""
@@ -98,19 +98,19 @@
msgid "Search city"
msgstr ""
-#: ../app/ui/AddLocationPage.qml:293
+#: ../app/ui/AddLocationPage.qml:295
msgid "No city found"
msgstr ""
-#: ../app/ui/AddLocationPage.qml:306
+#: ../app/ui/AddLocationPage.qml:308
msgid "Couldn't load weather data, please try later again!"
msgstr ""
-#: ../app/ui/AddLocationPage.qml:316
+#: ../app/ui/AddLocationPage.qml:318
msgid "Location already added."
msgstr ""
-#: ../app/ui/AddLocationPage.qml:319
+#: ../app/ui/AddLocationPage.qml:321
msgid "OK"
msgstr ""
=== added file 'tests/autopilot/ubuntu_weather_app/databases/for_migration.conf'
--- tests/autopilot/ubuntu_weather_app/databases/for_migration.conf 1970-01-01 00:00:00 +0000
+++ tests/autopilot/ubuntu_weather_app/databases/for_migration.conf 2015-08-18 23:51:50 +0000
@@ -0,0 +1,2 @@
+[weatherSettings]
+detectCurrentLocation=false
=== added directory 'tests/autopilot/ubuntu_weather_app/databases/legacy'
=== added file 'tests/autopilot/ubuntu_weather_app/databases/legacy/34e1e542f2f083ff18f537b07a380071.ini'
--- tests/autopilot/ubuntu_weather_app/databases/legacy/34e1e542f2f083ff18f537b07a380071.ini 1970-01-01 00:00:00 +0000
+++ tests/autopilot/ubuntu_weather_app/databases/legacy/34e1e542f2f083ff18f537b07a380071.ini 2015-08-18 23:51:50 +0000
@@ -0,0 +1,6 @@
+[General]
+Description=Default Ubuntu weather app
+Driver=QSQLITE
+EstimatedSize=100000
+Name=com.ubuntu.weather
+Version=0.3
=== added file 'tests/autopilot/ubuntu_weather_app/databases/legacy/34e1e542f2f083ff18f537b07a380071.sqlite'
Binary files tests/autopilot/ubuntu_weather_app/databases/legacy/34e1e542f2f083ff18f537b07a380071.sqlite 1970-01-01 00:00:00 +0000 and tests/autopilot/ubuntu_weather_app/databases/legacy/34e1e542f2f083ff18f537b07a380071.sqlite 2015-08-18 23:51:50 +0000 differ
=== added directory 'tests/autopilot/ubuntu_weather_app/files/legacy'
=== added file 'tests/autopilot/ubuntu_weather_app/files/legacy/1.json'
--- tests/autopilot/ubuntu_weather_app/files/legacy/1.json 1970-01-01 00:00:00 +0000
+++ tests/autopilot/ubuntu_weather_app/files/legacy/1.json 2015-08-18 23:51:50 +0000
@@ -0,0 +1,1709 @@
+{
+ "location": {
+ "coord": {
+ "lon": "10.01534",
+ "lat": "53.57532"
+ },
+ "timezone": {
+ "gmtOffset": 1,
+ "dstOffset": 2,
+ "timeZoneId": "Europe/Berlin"
+ },
+ "areaLabel": "Hamburg, Germany",
+ "population": 1739117,
+ "adminName2": "",
+ "name": "Hamburg",
+ "country": "DE",
+ "countryName": "Germany",
+ "adminName1": "Hamburg",
+ "adminName3": "",
+ "services": {
+ "weatherchannel": "GMXX0049",
+ "geonames": 2911298
+ }
+ },
+ "db": {
+ "id": 1,
+ "updated": "2014-03-15T14:41:54.459Z"
+ },
+ "format": 20140315,
+ "data": [
+ {
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 15,
+ "hours": 18,
+ "minutes": 59
+ },
+ "timestamp": 1394906400,
+ "metric": {
+ "tempMin": 6,
+ "windSpeed": 32
+ },
+ "imperial": {
+ "tempMin": 42.8,
+ "tempMax": 42.8,
+ "windSpeed": 19.472
+ },
+ "precipType": "rain",
+ "propPrecip": 60,
+ "pressure": null,
+ "humidity": 90,
+ "icon": "rain",
+ "condition": "Showers / Wind",
+ "windDeg": 279,
+ "windDir": "W",
+ "uv": 0,
+ "hourly": [
+ {
+ "timestamp": 1394895600,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 15,
+ "hours": 16,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 4,
+ "windSpeed": 32
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 39.2,
+ "windSpeed": 19.872
+ },
+ "precipType": "rain",
+ "propPrecip": 10,
+ "humidity": 71,
+ "windDeg": 296,
+ "windDir": "WNW",
+ "icon": "overcast",
+ "condition": "Partly Cloudy / Wind",
+ "uv": 1
+ },
+ {
+ "timestamp": 1394899200,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 15,
+ "hours": 17,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 7,
+ "tempFeels": 3,
+ "windSpeed": 32
+ },
+ "imperial": {
+ "temp": 44.6,
+ "tempFeels": 37.4,
+ "windSpeed": 19.872
+ },
+ "precipType": "rain",
+ "propPrecip": 10,
+ "humidity": 77,
+ "windDeg": 292,
+ "windDir": "WNW",
+ "icon": "overcast",
+ "condition": "Partly Cloudy / Wind",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394902800,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 15,
+ "hours": 18,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 7,
+ "tempFeels": 3,
+ "windSpeed": 27
+ },
+ "imperial": {
+ "temp": 44.6,
+ "tempFeels": 37.4,
+ "windSpeed": 16.767
+ },
+ "precipType": "rain",
+ "propPrecip": 20,
+ "humidity": 80,
+ "windDeg": 288,
+ "windDir": "WNW",
+ "icon": "overcast",
+ "condition": "Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394906400,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 15,
+ "hours": 19,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 7,
+ "tempFeels": 3,
+ "windSpeed": 24
+ },
+ "imperial": {
+ "temp": 44.6,
+ "tempFeels": 37.4,
+ "windSpeed": 14.904
+ },
+ "precipType": "rain",
+ "propPrecip": 20,
+ "humidity": 83,
+ "windDeg": 283,
+ "windDir": "WNW",
+ "icon": "overcast",
+ "condition": "Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394910000,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 15,
+ "hours": 20,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 7,
+ "tempFeels": 3,
+ "windSpeed": 24
+ },
+ "imperial": {
+ "temp": 44.6,
+ "tempFeels": 37.4,
+ "windSpeed": 14.904
+ },
+ "precipType": "rain",
+ "propPrecip": 20,
+ "humidity": 86,
+ "windDeg": 277,
+ "windDir": "W",
+ "icon": "overcast",
+ "condition": "Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394913600,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 15,
+ "hours": 21,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 7,
+ "tempFeels": 3,
+ "windSpeed": 22
+ },
+ "imperial": {
+ "temp": 44.6,
+ "tempFeels": 37.4,
+ "windSpeed": 13.661999999999999
+ },
+ "precipType": "rain",
+ "propPrecip": 50,
+ "humidity": 86,
+ "windDeg": 271,
+ "windDir": "W",
+ "icon": "rain",
+ "condition": "Light Rain",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394917200,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 15,
+ "hours": 22,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 7,
+ "tempFeels": 3,
+ "windSpeed": 22
+ },
+ "imperial": {
+ "temp": 44.6,
+ "tempFeels": 37.4,
+ "windSpeed": 13.661999999999999
+ },
+ "precipType": "rain",
+ "propPrecip": 60,
+ "humidity": 89,
+ "windDeg": 268,
+ "windDir": "W",
+ "icon": "rain",
+ "condition": "Light Rain",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394920800,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 15,
+ "hours": 23,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 7,
+ "tempFeels": 3,
+ "windSpeed": 24
+ },
+ "imperial": {
+ "temp": 44.6,
+ "tempFeels": 37.4,
+ "windSpeed": 14.904
+ },
+ "precipType": "rain",
+ "propPrecip": 60,
+ "humidity": 93,
+ "windDeg": 268,
+ "windDir": "W",
+ "icon": "rain",
+ "condition": "Light Rain",
+ "uv": 0
+ }
+ ],
+ "current": {
+ "timestamp": "1394893200",
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 15,
+ "hours": 18,
+ "minutes": 59
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 4,
+ "windSpeed": 38
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 39.2,
+ "windSpeed": 23.598
+ },
+ "precipType": null,
+ "propPrecip": null,
+ "humidity": 62,
+ "pressure": "1012.87",
+ "windDeg": 290,
+ "windDir": "WNW",
+ "icon": "cloud_sun",
+ "condition": "Partly Cloudy",
+ "uv": 1
+ }
+ },
+ {
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 18,
+ "minutes": 59
+ },
+ "timestamp": 1394992800,
+ "metric": {
+ "tempMin": 7,
+ "tempMax": 9,
+ "windSpeed": 35
+ },
+ "imperial": {
+ "tempMin": 44.6,
+ "tempMax": 48.2,
+ "windSpeed": 21.735
+ },
+ "precipType": "rain",
+ "propPrecip": 40,
+ "pressure": null,
+ "humidity": 88,
+ "icon": "rain",
+ "condition": "Showers / Wind",
+ "windDeg": 285,
+ "windDir": "WNW",
+ "uv": 1,
+ "hourly": [
+ {
+ "timestamp": 1394924400,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 0,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 7,
+ "tempFeels": 3,
+ "windSpeed": 25
+ },
+ "imperial": {
+ "temp": 44.6,
+ "tempFeels": 37.4,
+ "windSpeed": 15.525
+ },
+ "precipType": "rain",
+ "propPrecip": 60,
+ "humidity": 89,
+ "windDeg": 271,
+ "windDir": "W",
+ "icon": "rain",
+ "condition": "Showers",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394928000,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 1,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 7,
+ "tempFeels": 3,
+ "windSpeed": 27
+ },
+ "imperial": {
+ "temp": 44.6,
+ "tempFeels": 37.4,
+ "windSpeed": 16.767
+ },
+ "precipType": "rain",
+ "propPrecip": 50,
+ "humidity": 93,
+ "windDeg": 275,
+ "windDir": "W",
+ "icon": "rain",
+ "condition": "Showers",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394931600,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 2,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 4,
+ "windSpeed": 28
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 39.2,
+ "windSpeed": 17.387999999999998
+ },
+ "precipType": "rain",
+ "propPrecip": 50,
+ "humidity": 93,
+ "windDeg": 280,
+ "windDir": "W",
+ "icon": "rain",
+ "condition": "Showers",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394935200,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 3,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 4,
+ "windSpeed": 32
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 39.2,
+ "windSpeed": 19.872
+ },
+ "precipType": "rain",
+ "propPrecip": 50,
+ "humidity": 96,
+ "windDeg": 285,
+ "windDir": "WNW",
+ "icon": "rain",
+ "condition": "Showers / Wind",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394938800,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 4,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 5,
+ "windSpeed": 32
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 41,
+ "windSpeed": 19.872
+ },
+ "precipType": "rain",
+ "propPrecip": 40,
+ "humidity": 93,
+ "windDeg": 288,
+ "windDir": "WNW",
+ "icon": "rain",
+ "condition": "Showers / Wind",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394942400,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 5,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 5,
+ "windSpeed": 32
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 41,
+ "windSpeed": 19.872
+ },
+ "precipType": "rain",
+ "propPrecip": 40,
+ "humidity": 93,
+ "windDeg": 289,
+ "windDir": "WNW",
+ "icon": "rain",
+ "condition": "Showers / Wind",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394946000,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 6,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 5,
+ "windSpeed": 32
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 41,
+ "windSpeed": 19.872
+ },
+ "precipType": "rain",
+ "propPrecip": 40,
+ "humidity": 89,
+ "windDeg": 289,
+ "windDir": "WNW",
+ "icon": "rain",
+ "condition": "Few Showers / Wind",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394949600,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 7,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 5,
+ "windSpeed": 32
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 41,
+ "windSpeed": 19.872
+ },
+ "precipType": "rain",
+ "propPrecip": 30,
+ "humidity": 89,
+ "windDeg": 288,
+ "windDir": "WNW",
+ "icon": "rain",
+ "condition": "Few Showers / Wind",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394953200,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 8,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 5,
+ "windSpeed": 32
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 41,
+ "windSpeed": 19.872
+ },
+ "precipType": "rain",
+ "propPrecip": 30,
+ "humidity": 89,
+ "windDeg": 286,
+ "windDir": "WNW",
+ "icon": "rain",
+ "condition": "Few Showers / Wind",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394956800,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 9,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 5,
+ "windSpeed": 32
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 41,
+ "windSpeed": 19.872
+ },
+ "precipType": "rain",
+ "propPrecip": 40,
+ "humidity": 93,
+ "windDeg": 285,
+ "windDir": "WNW",
+ "icon": "rain",
+ "condition": "Showers / Wind",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394960400,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 10,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 5,
+ "windSpeed": 32
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 41,
+ "windSpeed": 19.872
+ },
+ "precipType": "rain",
+ "propPrecip": 40,
+ "humidity": 93,
+ "windDeg": 284,
+ "windDir": "WNW",
+ "icon": "rain",
+ "condition": "Showers / Wind",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394964000,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 11,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 5,
+ "windSpeed": 33
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 41,
+ "windSpeed": 20.493
+ },
+ "precipType": "rain",
+ "propPrecip": 40,
+ "humidity": 93,
+ "windDeg": 285,
+ "windDir": "WNW",
+ "icon": "rain",
+ "condition": "Showers / Wind",
+ "uv": 1
+ },
+ {
+ "timestamp": 1394967600,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 12,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 9,
+ "tempFeels": 5,
+ "windSpeed": 33
+ },
+ "imperial": {
+ "temp": 48.2,
+ "tempFeels": 41,
+ "windSpeed": 20.493
+ },
+ "precipType": "rain",
+ "propPrecip": 30,
+ "humidity": 86,
+ "windDeg": 286,
+ "windDir": "WNW",
+ "icon": "rain",
+ "condition": "Few Showers / Wind",
+ "uv": 1
+ },
+ {
+ "timestamp": 1394971200,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 13,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 9,
+ "tempFeels": 5,
+ "windSpeed": 35
+ },
+ "imperial": {
+ "temp": 48.2,
+ "tempFeels": 41,
+ "windSpeed": 21.735
+ },
+ "precipType": "rain",
+ "propPrecip": 30,
+ "humidity": 86,
+ "windDeg": 286,
+ "windDir": "WNW",
+ "icon": "rain",
+ "condition": "Few Showers / Wind",
+ "uv": 1
+ },
+ {
+ "timestamp": 1394974800,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 14,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 9,
+ "tempFeels": 5,
+ "windSpeed": 35
+ },
+ "imperial": {
+ "temp": 48.2,
+ "tempFeels": 41,
+ "windSpeed": 21.735
+ },
+ "precipType": "rain",
+ "propPrecip": 30,
+ "humidity": 86,
+ "windDeg": 285,
+ "windDir": "WNW",
+ "icon": "rain",
+ "condition": "Few Showers / Wind",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394978400,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 15,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 9,
+ "tempFeels": 5,
+ "windSpeed": 33
+ },
+ "imperial": {
+ "temp": 48.2,
+ "tempFeels": 41,
+ "windSpeed": 20.493
+ },
+ "precipType": "rain",
+ "propPrecip": 30,
+ "humidity": 86,
+ "windDeg": 283,
+ "windDir": "WNW",
+ "icon": "rain",
+ "condition": "Few Showers / Wind",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394982000,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 16,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 9,
+ "tempFeels": 5,
+ "windSpeed": 33
+ },
+ "imperial": {
+ "temp": 48.2,
+ "tempFeels": 41,
+ "windSpeed": 20.493
+ },
+ "precipType": "rain",
+ "propPrecip": 30,
+ "humidity": 86,
+ "windDeg": 281,
+ "windDir": "W",
+ "icon": "rain",
+ "condition": "Few Showers / Wind",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394985600,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 17,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 9,
+ "tempFeels": 5,
+ "windSpeed": 32
+ },
+ "imperial": {
+ "temp": 48.2,
+ "tempFeels": 41,
+ "windSpeed": 19.872
+ },
+ "precipType": "rain",
+ "propPrecip": 30,
+ "humidity": 86,
+ "windDeg": 281,
+ "windDir": "W",
+ "icon": "rain",
+ "condition": "Few Showers / Wind",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394989200,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 18,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 5,
+ "windSpeed": 28
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 41,
+ "windSpeed": 17.387999999999998
+ },
+ "precipType": "rain",
+ "propPrecip": 20,
+ "humidity": 86,
+ "windDeg": 281,
+ "windDir": "W",
+ "icon": "overcast",
+ "condition": "Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394992800,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 19,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 5,
+ "windSpeed": 27
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 41,
+ "windSpeed": 16.767
+ },
+ "precipType": "rain",
+ "propPrecip": 20,
+ "humidity": 86,
+ "windDeg": 281,
+ "windDir": "W",
+ "icon": "overcast",
+ "condition": "Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394996400,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 20,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 5,
+ "windSpeed": 25
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 41,
+ "windSpeed": 15.525
+ },
+ "precipType": "rain",
+ "propPrecip": 20,
+ "humidity": 86,
+ "windDeg": 279,
+ "windDir": "W",
+ "icon": "overcast",
+ "condition": "Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1395000000,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 21,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 5,
+ "windSpeed": 25
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 41,
+ "windSpeed": 15.525
+ },
+ "precipType": "rain",
+ "propPrecip": 20,
+ "humidity": 86,
+ "windDeg": 276,
+ "windDir": "W",
+ "icon": "overcast",
+ "condition": "Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1395003600,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 22,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 5,
+ "windSpeed": 24
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 41,
+ "windSpeed": 14.904
+ },
+ "precipType": "rain",
+ "propPrecip": 20,
+ "humidity": 86,
+ "windDeg": 273,
+ "windDir": "W",
+ "icon": "overcast",
+ "condition": "Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1395007200,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 23,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 5,
+ "windSpeed": 24
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 41,
+ "windSpeed": 14.904
+ },
+ "precipType": "rain",
+ "propPrecip": 20,
+ "humidity": 86,
+ "windDeg": 272,
+ "windDir": "W",
+ "icon": "overcast",
+ "condition": "Cloudy",
+ "uv": 0
+ }
+ ]
+ },
+ {
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 18,
+ "minutes": 59
+ },
+ "timestamp": 1395079200,
+ "metric": {
+ "tempMin": 5,
+ "tempMax": 10,
+ "windSpeed": 32
+ },
+ "imperial": {
+ "tempMin": 41,
+ "tempMax": 50,
+ "windSpeed": 19.872
+ },
+ "precipType": "rain",
+ "propPrecip": 40,
+ "pressure": null,
+ "humidity": 78,
+ "icon": "scattered",
+ "condition": "AM Showers / Wind",
+ "windDeg": 277,
+ "windDir": "W",
+ "uv": 1,
+ "hourly": [
+ {
+ "timestamp": 1395010800,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 0,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 5,
+ "windSpeed": 24
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 41,
+ "windSpeed": 14.904
+ },
+ "precipType": "rain",
+ "propPrecip": 20,
+ "humidity": 89,
+ "windDeg": 272,
+ "windDir": "W",
+ "icon": "overcast",
+ "condition": "Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1395014400,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 1,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 5,
+ "windSpeed": 24
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 41,
+ "windSpeed": 14.904
+ },
+ "precipType": "rain",
+ "propPrecip": 20,
+ "humidity": 89,
+ "windDeg": 273,
+ "windDir": "W",
+ "icon": "overcast",
+ "condition": "Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1395018000,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 2,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 5,
+ "windSpeed": 24
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 41,
+ "windSpeed": 14.904
+ },
+ "precipType": "rain",
+ "propPrecip": 20,
+ "humidity": 89,
+ "windDeg": 274,
+ "windDir": "W",
+ "icon": "overcast",
+ "condition": "Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1395021600,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 3,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 5,
+ "windSpeed": 24
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 41,
+ "windSpeed": 14.904
+ },
+ "precipType": "rain",
+ "propPrecip": 20,
+ "humidity": 89,
+ "windDeg": 274,
+ "windDir": "W",
+ "icon": "overcast",
+ "condition": "Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1395025200,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 4,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 5,
+ "windSpeed": 24
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 41,
+ "windSpeed": 14.904
+ },
+ "precipType": "rain",
+ "propPrecip": 20,
+ "humidity": 89,
+ "windDeg": 274,
+ "windDir": "W",
+ "icon": "overcast",
+ "condition": "Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1395028800,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 5,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 5,
+ "windSpeed": 24
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 41,
+ "windSpeed": 14.904
+ },
+ "precipType": "rain",
+ "propPrecip": 20,
+ "humidity": 89,
+ "windDeg": 274,
+ "windDir": "W",
+ "icon": "overcast",
+ "condition": "Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1395032400,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 6,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 5,
+ "windSpeed": 25
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 41,
+ "windSpeed": 15.525
+ },
+ "precipType": "rain",
+ "propPrecip": 10,
+ "humidity": 86,
+ "windDeg": 273,
+ "windDir": "W",
+ "icon": "overcast",
+ "condition": "Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1395036000,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 7,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 5,
+ "windSpeed": 25
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 41,
+ "windSpeed": 15.525
+ },
+ "precipType": "rain",
+ "propPrecip": 10,
+ "humidity": 86,
+ "windDeg": 273,
+ "windDir": "W",
+ "icon": "overcast",
+ "condition": "Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1395039600,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 8,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 4,
+ "windSpeed": 27
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 39.2,
+ "windSpeed": 16.767
+ },
+ "precipType": "rain",
+ "propPrecip": 20,
+ "humidity": 86,
+ "windDeg": 274,
+ "windDir": "W",
+ "icon": "overcast",
+ "condition": "Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1395043200,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 9,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 4,
+ "windSpeed": 27
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 39.2,
+ "windSpeed": 16.767
+ },
+ "precipType": "rain",
+ "propPrecip": 40,
+ "humidity": 86,
+ "windDeg": 275,
+ "windDir": "W",
+ "icon": "rain",
+ "condition": "Showers",
+ "uv": 0
+ },
+ {
+ "timestamp": 1395046800,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 10,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 5,
+ "windSpeed": 28
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 41,
+ "windSpeed": 17.387999999999998
+ },
+ "precipType": "rain",
+ "propPrecip": 40,
+ "humidity": 83,
+ "windDeg": 276,
+ "windDir": "W",
+ "icon": "rain",
+ "condition": "Showers",
+ "uv": 1
+ },
+ {
+ "timestamp": 1395050400,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 11,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 9,
+ "tempFeels": 5,
+ "windSpeed": 30
+ },
+ "imperial": {
+ "temp": 48.2,
+ "tempFeels": 41,
+ "windSpeed": 18.63
+ },
+ "precipType": "rain",
+ "propPrecip": 40,
+ "humidity": 77,
+ "windDeg": 277,
+ "windDir": "W",
+ "icon": "rain",
+ "condition": "Showers",
+ "uv": 1
+ },
+ {
+ "timestamp": 1395054000,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 12,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 10,
+ "tempFeels": 6,
+ "windSpeed": 32
+ },
+ "imperial": {
+ "temp": 50,
+ "tempFeels": 42.8,
+ "windSpeed": 19.872
+ },
+ "precipType": "rain",
+ "propPrecip": 20,
+ "humidity": 74,
+ "windDeg": 278,
+ "windDir": "W",
+ "icon": "overcast",
+ "condition": "Cloudy / Wind",
+ "uv": 1
+ },
+ {
+ "timestamp": 1395057600,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 13,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 10,
+ "tempFeels": 6,
+ "windSpeed": 32
+ },
+ "imperial": {
+ "temp": 50,
+ "tempFeels": 42.8,
+ "windSpeed": 19.872
+ },
+ "precipType": "rain",
+ "propPrecip": 20,
+ "humidity": 71,
+ "windDeg": 279,
+ "windDir": "W",
+ "icon": "overcast",
+ "condition": "Cloudy / Wind",
+ "uv": 1
+ },
+ {
+ "timestamp": 1395061200,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 14,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 10,
+ "tempFeels": 6,
+ "windSpeed": 32
+ },
+ "imperial": {
+ "temp": 50,
+ "tempFeels": 42.8,
+ "windSpeed": 19.872
+ },
+ "precipType": "rain",
+ "propPrecip": 20,
+ "humidity": 71,
+ "windDeg": 279,
+ "windDir": "W",
+ "icon": "overcast",
+ "condition": "Cloudy / Wind",
+ "uv": 1
+ },
+ {
+ "timestamp": 1395064800,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 15,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 10,
+ "tempFeels": 6,
+ "windSpeed": 30
+ },
+ "imperial": {
+ "temp": 50,
+ "tempFeels": 42.8,
+ "windSpeed": 18.63
+ },
+ "precipType": "rain",
+ "propPrecip": 20,
+ "humidity": 71,
+ "windDeg": 279,
+ "windDir": "W",
+ "icon": "overcast",
+ "condition": "Cloudy",
+ "uv": 1
+ }
+ ]
+ },
+ {
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 18,
+ "hours": 18,
+ "minutes": 59
+ },
+ "timestamp": 1395165600,
+ "metric": {
+ "tempMin": 6,
+ "tempMax": 10,
+ "windSpeed": 22
+ },
+ "imperial": {
+ "tempMin": 42.8,
+ "tempMax": 50,
+ "windSpeed": 13.661999999999999
+ },
+ "precipType": "rain",
+ "propPrecip": 20,
+ "pressure": null,
+ "humidity": 79,
+ "icon": "overcast",
+ "condition": "Cloudy",
+ "windDeg": 260,
+ "windDir": "W",
+ "uv": 1,
+ "hourly": []
+ },
+ {
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 19,
+ "hours": 18,
+ "minutes": 59
+ },
+ "timestamp": 1395252000,
+ "metric": {
+ "tempMin": 5,
+ "tempMax": 8,
+ "windSpeed": 35
+ },
+ "imperial": {
+ "tempMin": 41,
+ "tempMax": 46.4,
+ "windSpeed": 21.735
+ },
+ "precipType": "rain",
+ "propPrecip": 60,
+ "pressure": null,
+ "humidity": 84,
+ "icon": "rain",
+ "condition": "Light Rain / Wind",
+ "windDeg": 272,
+ "windDir": "W",
+ "uv": 1,
+ "hourly": []
+ },
+ {
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 20,
+ "hours": 18,
+ "minutes": 59
+ },
+ "timestamp": 1395338400,
+ "metric": {
+ "tempMin": 6,
+ "tempMax": 13,
+ "windSpeed": 17
+ },
+ "imperial": {
+ "tempMin": 42.8,
+ "tempMax": 55.400000000000006,
+ "windSpeed": 10.557
+ },
+ "precipType": "rain",
+ "propPrecip": 0,
+ "pressure": null,
+ "humidity": 59,
+ "icon": "cloud_sun",
+ "condition": "Mostly Sunny",
+ "windDeg": 245,
+ "windDir": "WSW",
+ "uv": 2,
+ "hourly": []
+ },
+ {
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 21,
+ "hours": 18,
+ "minutes": 59
+ },
+ "timestamp": 1395424800,
+ "metric": {
+ "tempMin": 6,
+ "tempMax": 12,
+ "windSpeed": 20
+ },
+ "imperial": {
+ "tempMin": 42.8,
+ "tempMax": 53.6,
+ "windSpeed": 12.42
+ },
+ "precipType": "rain",
+ "propPrecip": 20,
+ "pressure": null,
+ "humidity": 45,
+ "icon": "cloud_sun",
+ "condition": "Partly Cloudy",
+ "windDeg": 186,
+ "windDir": "S",
+ "uv": 2,
+ "hourly": []
+ },
+ {
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 22,
+ "hours": 18,
+ "minutes": 59
+ },
+ "timestamp": 1395511200,
+ "metric": {
+ "tempMin": 5,
+ "tempMax": 13,
+ "windSpeed": 24
+ },
+ "imperial": {
+ "tempMin": 41,
+ "tempMax": 55.400000000000006,
+ "windSpeed": 14.904
+ },
+ "precipType": "rain",
+ "propPrecip": 10,
+ "pressure": null,
+ "humidity": 72,
+ "icon": "cloud_sun",
+ "condition": "Partly Cloudy",
+ "windDeg": 229,
+ "windDir": "SW",
+ "uv": 2,
+ "hourly": []
+ },
+ {
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 23,
+ "hours": 18,
+ "minutes": 59
+ },
+ "timestamp": 1395597600,
+ "metric": {
+ "tempMin": 3,
+ "tempMax": 11,
+ "windSpeed": 20
+ },
+ "imperial": {
+ "tempMin": 37.4,
+ "tempMax": 51.8,
+ "windSpeed": 12.42
+ },
+ "precipType": "rain",
+ "propPrecip": 40,
+ "pressure": null,
+ "humidity": 76,
+ "icon": "rain",
+ "condition": "Showers",
+ "windDeg": 241,
+ "windDir": "WSW",
+ "uv": 2,
+ "hourly": []
+ },
+ {
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 24,
+ "hours": 18,
+ "minutes": 59
+ },
+ "timestamp": 1395684000,
+ "metric": {
+ "tempMin": 3,
+ "tempMax": 11,
+ "windSpeed": 17
+ },
+ "imperial": {
+ "tempMin": 37.4,
+ "tempMax": 51.8,
+ "windSpeed": 10.557
+ },
+ "precipType": "rain",
+ "propPrecip": 20,
+ "pressure": null,
+ "humidity": 75,
+ "icon": "cloud_sun",
+ "condition": "Mostly Cloudy",
+ "windDeg": 245,
+ "windDir": "WSW",
+ "uv": 2,
+ "hourly": []
+ }
+ ],
+ "save": true,
+ "updated": 1394894538202
+}
=== added file 'tests/autopilot/ubuntu_weather_app/files/legacy/2.json'
--- tests/autopilot/ubuntu_weather_app/files/legacy/2.json 1970-01-01 00:00:00 +0000
+++ tests/autopilot/ubuntu_weather_app/files/legacy/2.json 2015-08-18 23:51:50 +0000
@@ -0,0 +1,1710 @@
+{
+ "location": {
+ "coord": {
+ "lat": "51.50853",
+ "lon": "-0.12574"
+ },
+ "timezone": {
+ "dstOffset": 1,
+ "gmtOffset": 0,
+ "timeZoneId": "Europe/London"
+ },
+ "areaLabel": "England, Greater London, United Kingdom",
+ "population": 7556900,
+ "adminName2": "Greater London",
+ "name": "London",
+ "country": "GB",
+ "countryName": "United Kingdom",
+ "adminName1": "England",
+ "adminName3": "",
+ "services": {
+ "geonames": 2643743,
+ "weatherchannel": "UKXX0085"
+ },
+ "dbId": 0
+ },
+ "db": {
+ "id": 3,
+ "updated": "2014-03-15T14:43:17.704Z"
+ },
+ "format": 20140315,
+ "data": [
+ {
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 15,
+ "hours": 18,
+ "minutes": 59
+ },
+ "timestamp": 1394910000,
+ "metric": {
+ "tempMin": 8,
+ "tempMax": 17,
+ "windSpeed": 22
+ },
+ "imperial": {
+ "tempMin": 46.4,
+ "tempMax": 62.6,
+ "windSpeed": 13.661999999999999
+ },
+ "precipType": "rain",
+ "propPrecip": 0,
+ "pressure": null,
+ "humidity": 48,
+ "icon": "cloud_sun",
+ "condition": "Mostly Sunny",
+ "windDeg": 285,
+ "windDir": "WNW",
+ "uv": 2,
+ "hourly": [
+ {
+ "timestamp": 1394895600,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 15,
+ "hours": 15,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 17,
+ "tempFeels": 17,
+ "windSpeed": 22
+ },
+ "imperial": {
+ "temp": 62.6,
+ "tempFeels": 62.6,
+ "windSpeed": 13.661999999999999
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 44,
+ "windDeg": 288,
+ "windDir": "WNW",
+ "icon": "cloud_sun",
+ "condition": "Mostly Sunny",
+ "uv": 1
+ },
+ {
+ "timestamp": 1394899200,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 15,
+ "hours": 16,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 16,
+ "tempFeels": 16,
+ "windSpeed": 20
+ },
+ "imperial": {
+ "temp": 60.8,
+ "tempFeels": 60.8,
+ "windSpeed": 12.42
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 48,
+ "windDeg": 285,
+ "windDir": "WNW",
+ "icon": "cloud_sun",
+ "condition": "Mostly Sunny",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394902800,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 15,
+ "hours": 17,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 16,
+ "tempFeels": 16,
+ "windSpeed": 19
+ },
+ "imperial": {
+ "temp": 60.8,
+ "tempFeels": 60.8,
+ "windSpeed": 11.799
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 52,
+ "windDeg": 282,
+ "windDir": "WNW",
+ "icon": "cloud_sun",
+ "condition": "Mostly Sunny",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394906400,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 15,
+ "hours": 18,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 15,
+ "tempFeels": 14,
+ "windSpeed": 17
+ },
+ "imperial": {
+ "temp": 59,
+ "tempFeels": 57.2,
+ "windSpeed": 10.557
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 55,
+ "windDeg": 280,
+ "windDir": "W",
+ "icon": "cloud_sun",
+ "condition": "Mostly Sunny",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394910000,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 15,
+ "hours": 19,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 14,
+ "tempFeels": 13,
+ "windSpeed": 17
+ },
+ "imperial": {
+ "temp": 57.2,
+ "tempFeels": 55.400000000000006,
+ "windSpeed": 10.557
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 60,
+ "windDeg": 281,
+ "windDir": "W",
+ "icon": "cloud_moon",
+ "condition": "Mostly Clear",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394913600,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 15,
+ "hours": 20,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 12,
+ "tempFeels": 11,
+ "windSpeed": 16
+ },
+ "imperial": {
+ "temp": 53.6,
+ "tempFeels": 51.8,
+ "windSpeed": 9.936
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 66,
+ "windDeg": 283,
+ "windDir": "WNW",
+ "icon": "moon",
+ "condition": "Clear",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394917200,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 15,
+ "hours": 21,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 11,
+ "tempFeels": 10,
+ "windSpeed": 16
+ },
+ "imperial": {
+ "temp": 51.8,
+ "tempFeels": 50,
+ "windSpeed": 9.936
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 69,
+ "windDeg": 283,
+ "windDir": "WNW",
+ "icon": "moon",
+ "condition": "Clear",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394920800,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 15,
+ "hours": 22,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 10,
+ "tempFeels": 8,
+ "windSpeed": 16
+ },
+ "imperial": {
+ "temp": 50,
+ "tempFeels": 46.4,
+ "windSpeed": 9.936
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 74,
+ "windDeg": 280,
+ "windDir": "W",
+ "icon": "moon",
+ "condition": "Clear",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394924400,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 15,
+ "hours": 23,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 10,
+ "tempFeels": 8,
+ "windSpeed": 14
+ },
+ "imperial": {
+ "temp": 50,
+ "tempFeels": 46.4,
+ "windSpeed": 8.693999999999999
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 74,
+ "windDeg": 276,
+ "windDir": "W",
+ "icon": "moon",
+ "condition": "Clear",
+ "uv": 0
+ }
+ ],
+ "current": {
+ "timestamp": "1394893200",
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 15,
+ "hours": 18,
+ "minutes": 59
+ },
+ "metric": {
+ "temp": 17,
+ "tempFeels": 17,
+ "windSpeed": 22
+ },
+ "imperial": {
+ "temp": 62.6,
+ "tempFeels": 62.6,
+ "windSpeed": 13.661999999999999
+ },
+ "precipType": null,
+ "propPrecip": null,
+ "humidity": 37,
+ "pressure": "1025.06",
+ "windDeg": 280,
+ "windDir": "W",
+ "condition": "N/A",
+ "uv": 0
+ }
+ },
+ {
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 18,
+ "minutes": 59
+ },
+ "timestamp": 1394996400,
+ "metric": {
+ "tempMin": 6,
+ "tempMax": 17,
+ "windSpeed": 20
+ },
+ "imperial": {
+ "tempMin": 42.8,
+ "tempMax": 62.6,
+ "windSpeed": 12.42
+ },
+ "precipType": "rain",
+ "propPrecip": 0,
+ "pressure": null,
+ "humidity": 62,
+ "icon": "sun",
+ "condition": "Sunny",
+ "windDeg": 288,
+ "windDir": "WNW",
+ "uv": 2,
+ "hourly": [
+ {
+ "timestamp": 1394928000,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 0,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 10,
+ "tempFeels": 7,
+ "windSpeed": 14
+ },
+ "imperial": {
+ "temp": 50,
+ "tempFeels": 44.6,
+ "windSpeed": 8.693999999999999
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 77,
+ "windDeg": 274,
+ "windDir": "W",
+ "icon": "moon",
+ "condition": "Clear",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394931600,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 1,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 10,
+ "tempFeels": 7,
+ "windSpeed": 14
+ },
+ "imperial": {
+ "temp": 50,
+ "tempFeels": 44.6,
+ "windSpeed": 8.693999999999999
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 77,
+ "windDeg": 276,
+ "windDir": "W",
+ "icon": "moon",
+ "condition": "Clear",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394935200,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 2,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 9,
+ "tempFeels": 7,
+ "windSpeed": 16
+ },
+ "imperial": {
+ "temp": 48.2,
+ "tempFeels": 44.6,
+ "windSpeed": 9.936
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 80,
+ "windDeg": 279,
+ "windDir": "W",
+ "icon": "cloud_moon",
+ "condition": "Partly Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394938800,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 3,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 9,
+ "tempFeels": 7,
+ "windSpeed": 16
+ },
+ "imperial": {
+ "temp": 48.2,
+ "tempFeels": 44.6,
+ "windSpeed": 9.936
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 80,
+ "windDeg": 283,
+ "windDir": "WNW",
+ "icon": "cloud_moon",
+ "condition": "Partly Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394942400,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 4,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 6,
+ "windSpeed": 14
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 42.8,
+ "windSpeed": 8.693999999999999
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 83,
+ "windDeg": 285,
+ "windDir": "WNW",
+ "icon": "cloud_moon",
+ "condition": "Partly Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394946000,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 5,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 6,
+ "windSpeed": 14
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 42.8,
+ "windSpeed": 8.693999999999999
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 80,
+ "windDeg": 285,
+ "windDir": "WNW",
+ "icon": "moon",
+ "condition": "Clear",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394949600,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 6,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 6,
+ "windSpeed": 12
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 42.8,
+ "windSpeed": 7.452
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 80,
+ "windDeg": 285,
+ "windDir": "WNW",
+ "icon": "moon",
+ "condition": "Clear",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394953200,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 7,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 9,
+ "tempFeels": 7,
+ "windSpeed": 14
+ },
+ "imperial": {
+ "temp": 48.2,
+ "tempFeels": 44.6,
+ "windSpeed": 8.693999999999999
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 77,
+ "windDeg": 285,
+ "windDir": "WNW",
+ "icon": "sun",
+ "condition": "Sunny",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394956800,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 8,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 10,
+ "tempFeels": 7,
+ "windSpeed": 16
+ },
+ "imperial": {
+ "temp": 50,
+ "tempFeels": 44.6,
+ "windSpeed": 9.936
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 74,
+ "windDeg": 285,
+ "windDir": "WNW",
+ "icon": "sun",
+ "condition": "Sunny",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394960400,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 9,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 11,
+ "tempFeels": 8,
+ "windSpeed": 17
+ },
+ "imperial": {
+ "temp": 51.8,
+ "tempFeels": 46.4,
+ "windSpeed": 10.557
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 69,
+ "windDeg": 285,
+ "windDir": "WNW",
+ "icon": "sun",
+ "condition": "Sunny",
+ "uv": 1
+ },
+ {
+ "timestamp": 1394964000,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 10,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 12,
+ "tempFeels": 10,
+ "windSpeed": 19
+ },
+ "imperial": {
+ "temp": 53.6,
+ "tempFeels": 50,
+ "windSpeed": 11.799
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 64,
+ "windDeg": 284,
+ "windDir": "WNW",
+ "icon": "sun",
+ "condition": "Sunny",
+ "uv": 2
+ },
+ {
+ "timestamp": 1394967600,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 11,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 13,
+ "tempFeels": 11,
+ "windSpeed": 19
+ },
+ "imperial": {
+ "temp": 55.400000000000006,
+ "tempFeels": 51.8,
+ "windSpeed": 11.799
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 62,
+ "windDeg": 283,
+ "windDir": "WNW",
+ "icon": "sun",
+ "condition": "Sunny",
+ "uv": 2
+ },
+ {
+ "timestamp": 1394971200,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 12,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 14,
+ "tempFeels": 12,
+ "windSpeed": 20
+ },
+ "imperial": {
+ "temp": 57.2,
+ "tempFeels": 53.6,
+ "windSpeed": 12.42
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 57,
+ "windDeg": 284,
+ "windDir": "WNW",
+ "icon": "sun",
+ "condition": "Sunny",
+ "uv": 2
+ },
+ {
+ "timestamp": 1394974800,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 13,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 15,
+ "tempFeels": 13,
+ "windSpeed": 20
+ },
+ "imperial": {
+ "temp": 59,
+ "tempFeels": 55.400000000000006,
+ "windSpeed": 12.42
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 57,
+ "windDeg": 286,
+ "windDir": "WNW",
+ "icon": "sun",
+ "condition": "Sunny",
+ "uv": 2
+ },
+ {
+ "timestamp": 1394978400,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 14,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 16,
+ "tempFeels": 16,
+ "windSpeed": 20
+ },
+ "imperial": {
+ "temp": 60.8,
+ "tempFeels": 60.8,
+ "windSpeed": 12.42
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 54,
+ "windDeg": 289,
+ "windDir": "WNW",
+ "icon": "sun",
+ "condition": "Sunny",
+ "uv": 2
+ },
+ {
+ "timestamp": 1394982000,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 15,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 16,
+ "tempFeels": 16,
+ "windSpeed": 20
+ },
+ "imperial": {
+ "temp": 60.8,
+ "tempFeels": 60.8,
+ "windSpeed": 12.42
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 56,
+ "windDeg": 291,
+ "windDir": "WNW",
+ "icon": "sun",
+ "condition": "Sunny",
+ "uv": 1
+ },
+ {
+ "timestamp": 1394985600,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 16,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 16,
+ "tempFeels": 16,
+ "windSpeed": 19
+ },
+ "imperial": {
+ "temp": 60.8,
+ "tempFeels": 60.8,
+ "windSpeed": 11.799
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 58,
+ "windDeg": 291,
+ "windDir": "WNW",
+ "icon": "sun",
+ "condition": "Sunny",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394989200,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 17,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 15,
+ "tempFeels": 14,
+ "windSpeed": 16
+ },
+ "imperial": {
+ "temp": 59,
+ "tempFeels": 57.2,
+ "windSpeed": 9.936
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 60,
+ "windDeg": 289,
+ "windDir": "WNW",
+ "icon": "sun",
+ "condition": "Sunny",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394992800,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 18,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 15,
+ "tempFeels": 13,
+ "windSpeed": 14
+ },
+ "imperial": {
+ "temp": 59,
+ "tempFeels": 55.400000000000006,
+ "windSpeed": 8.693999999999999
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 62,
+ "windDeg": 288,
+ "windDir": "WNW",
+ "icon": "sun",
+ "condition": "Sunny",
+ "uv": 0
+ },
+ {
+ "timestamp": 1394996400,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 19,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 13,
+ "tempFeels": 12,
+ "windSpeed": 12
+ },
+ "imperial": {
+ "temp": 55.400000000000006,
+ "tempFeels": 53.6,
+ "windSpeed": 7.452
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 67,
+ "windDeg": 287,
+ "windDir": "WNW",
+ "icon": "moon",
+ "condition": "Clear",
+ "uv": 0
+ },
+ {
+ "timestamp": 1395000000,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 20,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 12,
+ "tempFeels": 11,
+ "windSpeed": 12
+ },
+ "imperial": {
+ "temp": 53.6,
+ "tempFeels": 51.8,
+ "windSpeed": 7.452
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 72,
+ "windDeg": 287,
+ "windDir": "WNW",
+ "icon": "cloud_moon",
+ "condition": "Mostly Clear",
+ "uv": 0
+ },
+ {
+ "timestamp": 1395003600,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 21,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 11,
+ "tempFeels": 10,
+ "windSpeed": 11
+ },
+ "imperial": {
+ "temp": 51.8,
+ "tempFeels": 50,
+ "windSpeed": 6.8309999999999995
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 74,
+ "windDeg": 284,
+ "windDir": "WNW",
+ "icon": "cloud_moon",
+ "condition": "Mostly Clear",
+ "uv": 0
+ },
+ {
+ "timestamp": 1395007200,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 22,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 10,
+ "tempFeels": 8,
+ "windSpeed": 11
+ },
+ "imperial": {
+ "temp": 50,
+ "tempFeels": 46.4,
+ "windSpeed": 6.8309999999999995
+ },
+ "precipType": "rain",
+ "propPrecip": 10,
+ "humidity": 77,
+ "windDeg": 279,
+ "windDir": "W",
+ "icon": "cloud_moon",
+ "condition": "Mostly Clear",
+ "uv": 0
+ },
+ {
+ "timestamp": 1395010800,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 16,
+ "hours": 23,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 10,
+ "tempFeels": 8,
+ "windSpeed": 9
+ },
+ "imperial": {
+ "temp": 50,
+ "tempFeels": 46.4,
+ "windSpeed": 5.589
+ },
+ "precipType": "rain",
+ "propPrecip": 10,
+ "humidity": 80,
+ "windDeg": 273,
+ "windDir": "W",
+ "icon": "cloud_moon",
+ "condition": "Partly Cloudy",
+ "uv": 0
+ }
+ ]
+ },
+ {
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 18,
+ "minutes": 59
+ },
+ "timestamp": 1395082800,
+ "metric": {
+ "tempMin": 6,
+ "tempMax": 15,
+ "windSpeed": 14
+ },
+ "imperial": {
+ "tempMin": 42.8,
+ "tempMax": 59,
+ "windSpeed": 8.693999999999999
+ },
+ "precipType": "rain",
+ "propPrecip": 0,
+ "pressure": null,
+ "humidity": 71,
+ "icon": "cloud_sun",
+ "condition": "Partly Cloudy",
+ "windDeg": 270,
+ "windDir": "W",
+ "uv": 2,
+ "hourly": [
+ {
+ "timestamp": 1395014400,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 0,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 9,
+ "tempFeels": 7,
+ "windSpeed": 9
+ },
+ "imperial": {
+ "temp": 48.2,
+ "tempFeels": 44.6,
+ "windSpeed": 5.589
+ },
+ "precipType": "rain",
+ "propPrecip": 10,
+ "humidity": 80,
+ "windDeg": 269,
+ "windDir": "W",
+ "icon": "cloud_moon",
+ "condition": "Partly Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1395018000,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 1,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 7,
+ "windSpeed": 9
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 44.6,
+ "windSpeed": 5.589
+ },
+ "precipType": "rain",
+ "propPrecip": 10,
+ "humidity": 83,
+ "windDeg": 268,
+ "windDir": "W",
+ "icon": "cloud_moon",
+ "condition": "Partly Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1395021600,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 2,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 7,
+ "windSpeed": 11
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 44.6,
+ "windSpeed": 6.8309999999999995
+ },
+ "precipType": "rain",
+ "propPrecip": 10,
+ "humidity": 80,
+ "windDeg": 270,
+ "windDir": "W",
+ "icon": "cloud_moon",
+ "condition": "Partly Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1395025200,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 3,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 6,
+ "windSpeed": 11
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 42.8,
+ "windSpeed": 6.8309999999999995
+ },
+ "precipType": "rain",
+ "propPrecip": 10,
+ "humidity": 83,
+ "windDeg": 270,
+ "windDir": "W",
+ "icon": "cloud_moon",
+ "condition": "Partly Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1395028800,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 4,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 7,
+ "tempFeels": 5,
+ "windSpeed": 11
+ },
+ "imperial": {
+ "temp": 44.6,
+ "tempFeels": 41,
+ "windSpeed": 6.8309999999999995
+ },
+ "precipType": "rain",
+ "propPrecip": 10,
+ "humidity": 83,
+ "windDeg": 268,
+ "windDir": "W",
+ "icon": "cloud_moon",
+ "condition": "Partly Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1395032400,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 5,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 7,
+ "tempFeels": 5,
+ "windSpeed": 11
+ },
+ "imperial": {
+ "temp": 44.6,
+ "tempFeels": 41,
+ "windSpeed": 6.8309999999999995
+ },
+ "precipType": "rain",
+ "propPrecip": 10,
+ "humidity": 83,
+ "windDeg": 266,
+ "windDir": "W",
+ "icon": "cloud_moon",
+ "condition": "Partly Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1395036000,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 6,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 7,
+ "tempFeels": 5,
+ "windSpeed": 11
+ },
+ "imperial": {
+ "temp": 44.6,
+ "tempFeels": 41,
+ "windSpeed": 6.8309999999999995
+ },
+ "precipType": "rain",
+ "propPrecip": 10,
+ "humidity": 83,
+ "windDeg": 266,
+ "windDir": "W",
+ "icon": "cloud_moon",
+ "condition": "Partly Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1395039600,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 7,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 7,
+ "tempFeels": 5,
+ "windSpeed": 11
+ },
+ "imperial": {
+ "temp": 44.6,
+ "tempFeels": 41,
+ "windSpeed": 6.8309999999999995
+ },
+ "precipType": "rain",
+ "propPrecip": 10,
+ "humidity": 83,
+ "windDeg": 270,
+ "windDir": "W",
+ "icon": "cloud_sun",
+ "condition": "Partly Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1395043200,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 8,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 7,
+ "tempFeels": 5,
+ "windSpeed": 12
+ },
+ "imperial": {
+ "temp": 44.6,
+ "tempFeels": 41,
+ "windSpeed": 7.452
+ },
+ "precipType": "rain",
+ "propPrecip": 10,
+ "humidity": 80,
+ "windDeg": 277,
+ "windDir": "W",
+ "icon": "cloud_sun",
+ "condition": "Mostly Cloudy",
+ "uv": 0
+ },
+ {
+ "timestamp": 1395046800,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 9,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 8,
+ "tempFeels": 6,
+ "windSpeed": 12
+ },
+ "imperial": {
+ "temp": 46.4,
+ "tempFeels": 42.8,
+ "windSpeed": 7.452
+ },
+ "precipType": "rain",
+ "propPrecip": 10,
+ "humidity": 77,
+ "windDeg": 281,
+ "windDir": "W",
+ "icon": "cloud_sun",
+ "condition": "Mostly Cloudy",
+ "uv": 1
+ },
+ {
+ "timestamp": 1395050400,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 10,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 10,
+ "tempFeels": 8,
+ "windSpeed": 12
+ },
+ "imperial": {
+ "temp": 50,
+ "tempFeels": 46.4,
+ "windSpeed": 7.452
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 71,
+ "windDeg": 281,
+ "windDir": "W",
+ "icon": "cloud_sun",
+ "condition": "Mostly Cloudy",
+ "uv": 1
+ },
+ {
+ "timestamp": 1395054000,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 11,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 11,
+ "tempFeels": 9,
+ "windSpeed": 14
+ },
+ "imperial": {
+ "temp": 51.8,
+ "tempFeels": 48.2,
+ "windSpeed": 8.693999999999999
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 69,
+ "windDeg": 278,
+ "windDir": "W",
+ "icon": "cloud_sun",
+ "condition": "Mostly Cloudy",
+ "uv": 2
+ },
+ {
+ "timestamp": 1395057600,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 12,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 12,
+ "tempFeels": 10,
+ "windSpeed": 14
+ },
+ "imperial": {
+ "temp": 53.6,
+ "tempFeels": 50,
+ "windSpeed": 8.693999999999999
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 64,
+ "windDeg": 275,
+ "windDir": "W",
+ "icon": "cloud_sun",
+ "condition": "Mostly Cloudy",
+ "uv": 2
+ },
+ {
+ "timestamp": 1395061200,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 13,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 13,
+ "tempFeels": 12,
+ "windSpeed": 14
+ },
+ "imperial": {
+ "temp": 55.400000000000006,
+ "tempFeels": 53.6,
+ "windSpeed": 8.693999999999999
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 59,
+ "windDeg": 273,
+ "windDir": "W",
+ "icon": "cloud_sun",
+ "condition": "Mostly Cloudy",
+ "uv": 1
+ },
+ {
+ "timestamp": 1395064800,
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 17,
+ "hours": 14,
+ "minutes": 0
+ },
+ "metric": {
+ "temp": 13,
+ "tempFeels": 12,
+ "windSpeed": 14
+ },
+ "imperial": {
+ "temp": 55.400000000000006,
+ "tempFeels": 53.6,
+ "windSpeed": 8.693999999999999
+ },
+ "precipType": "rain",
+ "propPrecip": null,
+ "humidity": 59,
+ "windDeg": 272,
+ "windDir": "W",
+ "icon": "overcast",
+ "condition": "Cloudy",
+ "uv": 1
+ }
+ ]
+ },
+ {
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 18,
+ "hours": 18,
+ "minutes": 59
+ },
+ "timestamp": 1395169200,
+ "metric": {
+ "tempMin": 7,
+ "tempMax": 13,
+ "windSpeed": 24
+ },
+ "imperial": {
+ "tempMin": 44.6,
+ "tempMax": 55.400000000000006,
+ "windSpeed": 14.904
+ },
+ "precipType": "rain",
+ "propPrecip": 0,
+ "pressure": null,
+ "humidity": 70,
+ "icon": "overcast",
+ "condition": "Cloudy",
+ "windDeg": 254,
+ "windDir": "WSW",
+ "uv": 2,
+ "hourly": []
+ },
+ {
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 19,
+ "hours": 18,
+ "minutes": 59
+ },
+ "timestamp": 1395255600,
+ "metric": {
+ "tempMin": 6,
+ "tempMax": 17,
+ "windSpeed": 27
+ },
+ "imperial": {
+ "tempMin": 42.8,
+ "tempMax": 62.6,
+ "windSpeed": 16.767
+ },
+ "precipType": "rain",
+ "propPrecip": 0,
+ "pressure": null,
+ "humidity": 67,
+ "icon": "overcast",
+ "condition": "Cloudy",
+ "windDeg": 257,
+ "windDir": "WSW",
+ "uv": 2,
+ "hourly": []
+ },
+ {
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 20,
+ "hours": 18,
+ "minutes": 59
+ },
+ "timestamp": 1395342000,
+ "metric": {
+ "tempMin": 7,
+ "tempMax": 16,
+ "windSpeed": 24
+ },
+ "imperial": {
+ "tempMin": 44.6,
+ "tempMax": 60.8,
+ "windSpeed": 14.904
+ },
+ "precipType": "rain",
+ "propPrecip": 10,
+ "pressure": null,
+ "humidity": 72,
+ "icon": "cloud_sun",
+ "condition": "Partly Cloudy",
+ "windDeg": 215,
+ "windDir": "SW",
+ "uv": 3,
+ "hourly": []
+ },
+ {
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 21,
+ "hours": 18,
+ "minutes": 59
+ },
+ "timestamp": 1395428400,
+ "metric": {
+ "tempMin": 6,
+ "tempMax": 15,
+ "windSpeed": 24
+ },
+ "imperial": {
+ "tempMin": 42.8,
+ "tempMax": 59,
+ "windSpeed": 14.904
+ },
+ "precipType": "rain",
+ "propPrecip": 20,
+ "pressure": null,
+ "humidity": 74,
+ "icon": "cloud_sun",
+ "condition": "Partly Cloudy",
+ "windDeg": 188,
+ "windDir": "S",
+ "uv": 2,
+ "hourly": []
+ },
+ {
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 22,
+ "hours": 18,
+ "minutes": 59
+ },
+ "timestamp": 1395514800,
+ "metric": {
+ "tempMin": 4,
+ "tempMax": 11,
+ "windSpeed": 24
+ },
+ "imperial": {
+ "tempMin": 39.2,
+ "tempMax": 51.8,
+ "windSpeed": 14.904
+ },
+ "precipType": "rain",
+ "propPrecip": 10,
+ "pressure": null,
+ "humidity": 69,
+ "icon": "cloud_sun",
+ "condition": "Mostly Cloudy",
+ "windDeg": 238,
+ "windDir": "WSW",
+ "uv": 2,
+ "hourly": []
+ },
+ {
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 23,
+ "hours": 18,
+ "minutes": 59
+ },
+ "timestamp": 1395601200,
+ "metric": {
+ "tempMin": 5,
+ "tempMax": 12,
+ "windSpeed": 16
+ },
+ "imperial": {
+ "tempMin": 41,
+ "tempMax": 53.6,
+ "windSpeed": 9.936
+ },
+ "precipType": "rain",
+ "propPrecip": 10,
+ "pressure": null,
+ "humidity": 70,
+ "icon": "cloud_sun",
+ "condition": "Partly Cloudy",
+ "windDeg": 250,
+ "windDir": "WSW",
+ "uv": 3,
+ "hourly": []
+ },
+ {
+ "date": {
+ "year": 2014,
+ "month": 2,
+ "date": 24,
+ "hours": 18,
+ "minutes": 59
+ },
+ "timestamp": 1395687600,
+ "metric": {
+ "tempMin": 5,
+ "tempMax": 13,
+ "windSpeed": 17
+ },
+ "imperial": {
+ "tempMin": 41,
+ "tempMax": 55.400000000000006,
+ "windSpeed": 10.557
+ },
+ "precipType": "rain",
+ "propPrecip": 20,
+ "pressure": null,
+ "humidity": 74,
+ "icon": "overcast",
+ "condition": "Cloudy",
+ "windDeg": 216,
+ "windDir": "SW",
+ "uv": 2,
+ "hourly": []
+ }
+ ],
+ "save": true,
+ "updated": 1394894610533
+}
\ No newline at end of file
=== modified file 'tests/autopilot/ubuntu_weather_app/tests/__init__.py'
--- tests/autopilot/ubuntu_weather_app/tests/__init__.py 2015-07-26 15:23:33 +0000
+++ tests/autopilot/ubuntu_weather_app/tests/__init__.py 2015-08-18 23:51:50 +0000
@@ -189,15 +189,12 @@
self.clean_db()
# create blank db
- database_tmpl_dir = os.path.join(
- os.path.dirname(ubuntu_weather_app.__file__),
- 'databases')
logger.debug("Creating blank db on filesystem %s" % self.db_dir)
if not os.path.exists(self.app_dir):
os.makedirs(self.app_dir)
- shutil.copytree(database_tmpl_dir, self.db_dir)
+ shutil.copytree(self.database_tmpl_dir, self.db_dir)
self.assertThat(
lambda: os.path.exists(self.db_path),
@@ -227,6 +224,9 @@
self.app_dir = os.path.join(
os.environ.get('HOME'),
".local/share/com.ubuntu.weather")
+ self.database_tmpl_dir = os.path.join(
+ os.path.dirname(ubuntu_weather_app.__file__),
+ 'databases')
self.db_dir = os.path.join(self.app_dir, 'Databases')
self.db_file = "34e1e542f2f083ff18f537b07a380071.sqlite"
self.db_path = os.path.join(self.db_dir, self.db_file)
@@ -235,24 +235,48 @@
os.path.join(os.path.dirname(__file__), '..', 'files'))
+class LegacyDatabaseMixin(DatabaseMixin):
+ def load_database_vars(self):
+ self.app_dir = os.path.join(
+ os.environ.get('HOME'),
+ ".local/share/com.ubuntu.weather")
+ self.database_tmpl_dir = os.path.join(
+ os.path.dirname(ubuntu_weather_app.__file__),
+ 'databases', 'legacy')
+ self.db_dir = os.path.join(self.app_dir, 'Databases')
+ self.db_file = "34e1e542f2f083ff18f537b07a380071.sqlite"
+ self.db_path = os.path.join(self.db_dir, self.db_file)
+
+ self.json_path = os.path.abspath(
+ os.path.join(os.path.dirname(__file__), '..', 'files', 'legacy'))
+
+
class SettingsMixin(object):
"""
Helper functions for dealing with the settings file
"""
- def create_settings_with_location_added(self):
- logger.debug("Creating settings with location added")
-
+ def _create_settings_base(self, path):
if not os.path.exists(self.settings_dir):
os.makedirs(self.settings_dir)
- shutil.copyfile(self.settings_location_added, self.settings_filepath)
+ shutil.copyfile(path, self.settings_filepath)
self.assertThat(
lambda: os.path.exists(self.settings_filepath),
Eventually(Equals(True)))
+ def create_settings_for_migration(self):
+ logger.debug("Creating settings with for migration")
+
+ self._create_settings_base(self.settings_for_migration)
+
+ def create_settings_with_location_added(self):
+ logger.debug("Creating settings with location added")
+
+ self._create_settings_base(self.settings_location_added)
+
def load_settings_vars(self):
self.db_dir = os.path.abspath(
os.path.join(os.path.dirname(__file__), '..', 'databases'))
@@ -263,6 +287,8 @@
'com.ubuntu.weather.conf')
self.settings_location_added = os.path.join(self.db_dir,
"location_added.conf")
+ self.settings_for_migration = os.path.join(self.db_dir,
+ "for_migration.conf")
class UbuntuWeatherAppTestCase(BaseTestCaseWithPatchedHome, DatabaseMixin,
@@ -301,3 +327,24 @@
self.add_locations_to_database()
self.app = UbuntuWeatherApp(self.launcher())
+
+
+class UbuntuWeatherAppTestCaseWithLegacyData(BaseTestCaseWithPatchedHome,
+ LegacyDatabaseMixin,
+ SettingsMixin):
+
+ """Base test case that launches the ubuntu-weather-app with legacy data."""
+
+ def setUp(self):
+ super(UbuntuWeatherAppTestCaseWithLegacyData, self).setUp()
+
+ self.load_database_vars()
+ self.create_blank_db()
+
+ self.load_settings_vars()
+ self.create_settings_for_migration()
+
+ logger.debug("Adding fake data to new database")
+ self.add_locations_to_database()
+
+ self.app = UbuntuWeatherApp(self.launcher())
=== added file 'tests/autopilot/ubuntu_weather_app/tests/test_migration.py'
--- tests/autopilot/ubuntu_weather_app/tests/test_migration.py 1970-01-01 00:00:00 +0000
+++ tests/autopilot/ubuntu_weather_app/tests/test_migration.py 2015-08-18 23:51:50 +0000
@@ -0,0 +1,50 @@
+# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
+# Copyright 2013, 2014, 2015 Canonical
+#
+# This program is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 3, as published
+# by the Free Software Foundation.
+
+"""Ubuntu Weather app autopilot tests."""
+
+from __future__ import absolute_import
+
+import logging
+from autopilot.matchers import Eventually
+from testtools.matchers import Equals
+
+
+from ubuntu_weather_app.tests import UbuntuWeatherAppTestCaseWithLegacyData
+
+logger = logging.getLogger(__name__)
+
+
+class TestMigration(UbuntuWeatherAppTestCaseWithLegacyData):
+
+ def setUp(self):
+ super(TestMigration, self).setUp()
+
+ def test_locations_count_startup(self):
+ """ tests that the correct number of migrated locations appear """
+
+ home_page = self.app.get_home_page()
+
+ self.assertThat(home_page.get_location_count, Eventually(Equals(2)))
+
+ def test_locations_page(self):
+ """ tests that the correct locations are in the list """
+
+ # Open the locations page from bottom edge
+ home_page = self.app.get_home_page()
+ home_page.reveal_bottom_edge_page()
+
+ locations_page = self.app.get_locations_page()
+ locations_page.visible.wait_for(True)
+
+ # Check that the locations are correct
+ self.assertThat(locations_page.get_location(0).name,
+ Eventually(Equals("Hamburg")))
+ self.assertThat(locations_page.get_location(1).name,
+ Eventually(Equals("London")))
+
+ # TODO: once units test land add tests for testing migrated settings
Follow ups