Skip to content

Commit d0aa9d1

Browse files
authored
Add test for sqlite (#69)
* Test if database is generated * All tests are OK * Add logic to remove existing database * Bump version
1 parent eaee573 commit d0aa9d1

3 files changed

Lines changed: 71 additions & 1 deletion

File tree

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "WeatherReport"
22
uuid = "3c954167-71e4-4212-9688-830d6b8fcbc2"
33
authors = ["Vikas Negi <vikas.negi10@gmail.com>"]
4-
version = "0.18.0"
4+
version = "0.18.1"
55

66
[deps]
77
CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b"

test/Project.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
[deps]
2+
DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
23
ReTestItems = "817f1d60-ba6b-4fd5-9520-3cf149f6a823"
4+
SQLite = "0aa819cd-b072-5ff4-a722-6bc24af294d9"
35
Suppressor = "fd094767-a336-5f1f-9728-57cf17d0bbfb"
46
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

test/export_history_test.jl

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Run tests on exporting historical data to SQLite database
2+
3+
@testsetup module TestDatabase
4+
5+
export db, df_snow, df_rain, df_temp
6+
7+
using WeatherReport, SQLite, DataFrames
8+
9+
db_path = joinpath(@__DIR__, "..", "export", "Veldhoven_all.sqlite")
10+
11+
# Remove existing database otherwise new data gets appended to it
12+
if isfile(db_path)
13+
rm(db_path)
14+
end
15+
16+
export_to_sqlite("Veldhoven",
17+
start_date = "2022-01-01",
18+
end_date = "2022-01-31")
19+
20+
db = SQLite.DB(db_path)
21+
22+
df_snow = DBInterface.execute(db, "SELECT * FROM snowfall") |> DataFrame
23+
df_rain = DBInterface.execute(db, "SELECT * FROM rain") |> DataFrame
24+
df_temp = DBInterface.execute(db, "SELECT * FROM temperature_2m") |> DataFrame
25+
end
26+
27+
@testitem "SQLite database" setup = [TestDatabase] begin
28+
29+
using SQLite
30+
31+
@testset "Check number of tables" begin
32+
@test SQLite.tables(db) |> length == 6
33+
end
34+
35+
@testset "Check snowfall data size" begin
36+
rows, cols = size(df_snow)
37+
38+
@test rows == 744
39+
@test cols == 2
40+
end
41+
42+
@testset "Check rain data" begin
43+
df_filter = filter(row -> row.rain > 0, df_rain)
44+
rows, cols = size(df_filter)
45+
46+
@test rows == 152
47+
@test cols == 2
48+
49+
@test df_rain[!, :rain][2] 0.1
50+
@test df_rain[!, :rain][742] 0.1
51+
52+
end
53+
54+
@testset "Check temperature data" begin
55+
df_filter = filter(row -> row.temperature_2m > 5.5, df_temp)
56+
rows, cols = size(df_filter)
57+
58+
@test rows == 208
59+
@test cols == 3
60+
61+
@test df_temp[!, :temperature_2m][1] 12.3
62+
@test df_temp[!, :temperature_2m][744] 3.5
63+
64+
@test df_temp[!, :APP_TEMP][2] 11.3
65+
@test df_temp[!, :APP_TEMP][743] -0.6
66+
end
67+
68+
end

0 commit comments

Comments
 (0)