File tree Expand file tree Collapse file tree 5 files changed +142
-0
lines changed
topic/chatbot/table-augmented-generation/workshop Expand file tree Collapse file tree 5 files changed +142
-0
lines changed Original file line number Diff line number Diff line change 1+ name : Chatbot
2+
3+ on :
4+ pull_request :
5+ paths :
6+ - ' .github/workflows/ml-chatbot.yml'
7+ - ' topic/chatbot/**'
8+ - ' /requirements.txt'
9+ push :
10+ branches : [ main ]
11+ paths :
12+ - ' .github/workflows/ml-chatbot.yml'
13+ - ' topic/chatbot/**'
14+ - ' /requirements.txt'
15+
16+ # Allow job to be triggered manually.
17+ workflow_dispatch :
18+
19+ # Run job each night after CrateDB nightly has been published.
20+ schedule :
21+ - cron : ' 0 3 * * *'
22+
23+ # Cancel in-progress jobs when pushing to the same branch.
24+ concurrency :
25+ cancel-in-progress : true
26+ group : ${{ github.workflow }}-${{ github.ref }}
27+
28+ jobs :
29+ test :
30+ name : "
31+ Python: ${{ matrix.python-version }}
32+ CrateDB: ${{ matrix.cratedb-version }}
33+ on ${{ matrix.os }}"
34+ runs-on : ${{ matrix.os }}
35+ strategy :
36+ fail-fast : false
37+ matrix :
38+ os : [ 'ubuntu-latest' ]
39+ python-version : [
40+ ' 3.10' ,
41+ ' 3.13' ,
42+ ]
43+ cratedb-version : [ 'nightly' ]
44+
45+ services :
46+ cratedb :
47+ image : crate/crate:${{ matrix.cratedb-version }}
48+ ports :
49+ - 4200:4200
50+ - 5432:5432
51+ env :
52+ CRATE_HEAP_SIZE : 4g
53+
54+ env :
55+ OPENAI_API_KEY : ${{ secrets.OPENAI_API_KEY }}
56+
57+ steps :
58+
59+ - name : Acquire sources
60+ uses : actions/checkout@v4
61+
62+ - name : Set up Python
63+ uses : actions/setup-python@v5
64+ with :
65+ python-version : ${{ matrix.python-version }}
66+ architecture : x64
67+ cache : ' pip'
68+ cache-dependency-path : |
69+ requirements.txt
70+ topic/chatbot/table-augmented-generation/app/requirements.txt
71+ topic/chatbot/table-augmented-generation/workshop/requirements-dev.txt
72+
73+ - name : Install utilities
74+ run : |
75+ pip install -r requirements.txt
76+
77+ - name : Validate topic/chatbot/table-augmented-generation/workshop
78+ run : |
79+ ngr test --accept-no-venv topic/chatbot/table-augmented-generation/workshop
Original file line number Diff line number Diff line change 1+ import os
2+ from pathlib import Path
3+
4+ import pytest
5+ import sqlalchemy as sa
6+ from pueblo .testing .notebook import generate_tests
7+
8+
9+ def pytest_generate_tests (metafunc ):
10+ """
11+ Generate pytest test case per Jupyter Notebook.
12+ """
13+ here = Path (__file__ ).parent
14+ generate_tests (metafunc , path = here )
15+
16+
17+ @pytest .fixture (autouse = True )
18+ def reset_database_tables ():
19+ """
20+ Before running a test case, reset relevant tables in database.
21+ """
22+
23+ connection_string = os .environ .get ("CRATEDB_CONNECTION_STRING" )
24+
25+ engine = sa .create_engine (connection_string , echo = os .environ .get ("DEBUG" ))
26+ connection = engine .connect ()
27+
28+ reset_tables = [
29+ "machine_manuals" ,
30+ "motor_readings" ,
31+ ]
32+
33+ for table in reset_tables :
34+ connection .execute (sa .text (f"DROP TABLE IF EXISTS { table } ;" ))
Original file line number Diff line number Diff line change 1+ [tool .pytest .ini_options ]
2+ minversion = " 2.0"
3+ addopts = """
4+ -rfEX -p pytester --strict-markers --verbosity=3 --capture=no
5+ """
6+ env = [
7+ " CRATEDB_CONNECTION_STRING=crate://crate@localhost/?schema=notebook" ,
8+ " PYDEVD_DISABLE_FILE_VALIDATION=1" ,
9+ ]
10+
11+ log_level = " DEBUG"
12+ log_cli_level = " DEBUG"
13+
14+ testpaths = [
15+ " *.py" ,
16+ ]
17+ xfail_strict = true
18+ markers = [
19+ ]
Original file line number Diff line number Diff line change 1+ pueblo [notebook,testing ]>= 0.0.10
Original file line number Diff line number Diff line change 1+ from testbook import testbook
2+
3+
4+ def test_notebook (notebook ):
5+ """
6+ Execute Jupyter Notebook, one test case per .ipynb file.
7+ """
8+ with testbook (notebook ) as tb :
9+ tb .execute ()
You can’t perform that action at this time.
0 commit comments