File tree Expand file tree Collapse file tree 4 files changed +76
-24
lines changed Expand file tree Collapse file tree 4 files changed +76
-24
lines changed Original file line number Diff line number Diff line change
1
+
2
+ FROM ubuntu:20.04
3
+
4
+ RUN apt-get update && apt-get -y install git make python3 python3-pip python3-venv sqlite3 vim virtualenvwrapper wget
5
+
6
+ RUN mkdir /root/dbt-sqlite
7
+
8
+ WORKDIR /root/dbt-sqlite
9
+
10
+ RUN mkdir -p /tmp/dbt-sqlite-tests
11
+
12
+ RUN cd /tmp/dbt-sqlite-tests && wget https://github.com/nalgeon/sqlean/releases/download/0.12.2/crypto.so
13
+
14
+ RUN pip install dbt==0.21.1
15
+
16
+ # NOTE: dbt 0.19.x doesn't work with pytest-dbt-adapter >= 0.5.0; use 0.4.0
17
+ # see https://github.com/dbt-labs/dbt-adapter-tests/issues/20
18
+ #
19
+ # pytest-dbt-adapter 0.6.0 doesn't seem to work with dbt 0.21.1,
20
+ # I think it's intended for the forthcoming 1.0.0 dbt release?
21
+ RUN pip install pytest-dbt-adapter==0.5.1
22
+
23
+ ENTRYPOINT ["./run_tests.sh" ]
Original file line number Diff line number Diff line change @@ -173,33 +173,10 @@ git push --tags
173
173
174
174
## Running Tests
175
175
176
- On Windows, you'll need to make adjustments to the commands below.
177
-
178
176
```
179
- workon dbt-sqlite-test
180
-
181
- pip install dbt==0.20.0
182
-
183
- # install adapter test suite
184
- # NOTE: dbt 0.19.x doesn't work with >= 0.5.0; use 0.4.0
185
- # see https://github.com/dbt-labs/dbt-adapter-tests/issues/20
186
- pip install pytest-dbt-adapter==0.5.1
187
-
188
- # install dbt-sqlite in development mode
189
- pip install -e .
190
-
191
- # this path needs to exist for tests to write database file
192
- mkdir -p /tmp/dbt-sqlite-tests
193
-
194
- # adjust paths in test/sqlite.dbtspec before running this
195
- pytest test/sqlite.dbtspec
196
-
197
- # remember to test 'dbt docs generate': this isn't covered in test suite
177
+ ./run_tests_docker.sh
198
178
```
199
179
200
- Remember to delete the database file referenced in ` test/sqlite.dbtspec `
201
- between runs of pytest, otherwise leftover state from failures can mess up subsequent test runs.
202
-
203
180
## Credits
204
181
205
182
Inspired by this initial work by stephen1000: https://github.com/stephen1000/dbt_sqlite
Original file line number Diff line number Diff line change
1
+ #! /bin/bash
2
+
3
+ pip install -e .
4
+
5
+ # Leaving the database file between runs of pytest can mess up subsequent test runs.
6
+ # Since this runs in a fresh container each time, it's not an issue.
7
+
8
+ pytest test/sqlite.dbtspec
9
+
10
+ # ###
11
+
12
+ # dbt-sqlite overrides some stuff pertaining to 'docs generate'
13
+ # so exercise it using jaffle_shop repo
14
+
15
+ cd /tmp
16
+
17
+ git clone https://github.com/dbt-labs/jaffle_shop.git
18
+
19
+ cd /tmp/jaffle_shop
20
+
21
+ mkdir -p /root/.dbt
22
+
23
+ cat >> /root/.dbt/profiles.yml << EOF
24
+
25
+ jaffle_shop:
26
+
27
+ target: dev
28
+ outputs:
29
+ dev:
30
+ type: sqlite
31
+ threads: 1
32
+ # database MUST exist in order for macros to work. its value is arbitrary.
33
+ database: "database"
34
+ schema: 'main'
35
+ schemas_and_paths:
36
+ main: '/tmp/jaffle_shop/jaffle_shop.db'
37
+ schema_directory: '/tmp/jaffle_shop'
38
+ extensions:
39
+ - "/tmp/dbt-sqlite-tests/crypto.so"
40
+
41
+ EOF
42
+
43
+ dbt docs generate
Original file line number Diff line number Diff line change
1
+ #! /bin/bash
2
+
3
+ docker build . -t dbt-sqlite-test
4
+
5
+ docker run \
6
+ --rm \
7
+ --name dbt-sqlite-test-container \
8
+ -v " $( pwd) " :" /root/dbt-sqlite" \
9
+ dbt-sqlite-test
You can’t perform that action at this time.
0 commit comments