From 3462bcb7fd31eb081580050356f5a404008410e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Lachowski?= Date: Thu, 22 Oct 2026 23:29:03 +0200 Subject: [PATCH 1/2] RDBTC-266 Guide: Powerful CI with Test Driver & Testcontainers --- guides/assets/ci-testcontainers1.webp | Bin 0 -> 28338 bytes guides/assets/ci-testcontainers2.webp | Bin 0 -> 92634 bytes guides/assets/ci-testcontainers3.webp | Bin 0 -> 37762 bytes guides/assets/ci-testcontainers4.webp | Bin 0 -> 11650 bytes guides/assets/ci-testcontainers5.webp | Bin 0 -> 20566 bytes ...ci-with-test-driver-and-testcontainers.mdx | 501 ++++++++++++++++++ 6 files changed, 501 insertions(+) create mode 100644 guides/assets/ci-testcontainers1.webp create mode 100644 guides/assets/ci-testcontainers2.webp create mode 100644 guides/assets/ci-testcontainers3.webp create mode 100644 guides/assets/ci-testcontainers4.webp create mode 100644 guides/assets/ci-testcontainers5.webp create mode 100644 guides/ravendb-python-ci-with-test-driver-and-testcontainers.mdx diff --git a/guides/assets/ci-testcontainers1.webp b/guides/assets/ci-testcontainers1.webp new file mode 100644 index 0000000000000000000000000000000000000000..ff1dcf24d0f39820d23e888b2d3ab65b867ba66d GIT binary patch literal 28338 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 LV#*D)Bj zL$~GO8nPMS5Kp7LbM=MBOqZwWNumLc&V#yINuYuCus;6?n7eYfJ3gZi#Z~`XW~{UP zVj5F?kZxM05`jjtqS}p4_kIgLF*p-~5E?bA3 z&-O(^JBXO;h=|xKan(KR=M7-f4V;hyHE5_r^Nr*ZTIP-UizC0m;hMg14XvvLo|uvD z0@#z|qD3GXLU=Duj}Y&gYX~#*R?_j^h`vv!GjI#mQ)(UUG^HX7>7ixcOYSr|&U3Q( z1xLDjM4|i58rTpfIJmtggsx0d@ewfmH(F^RCfBAVm45z155~2Y>urIi#Zh(b8ITft zbNFxOs01-~XwWh%#C!;oKztXzz|O9PrNriM$!z^Bt0Z8fAhyAHdtKDsm?h@X%=b>% zL=_br$f*I;yN(vpC4*HlVn}$n*=kV?QPQ>{O+1Wr1vTO_h z1JcqDUWhV=^B!5Qh0I>G&)1-o(H%Qg^RB|}txHnkwjyx!LJ>r`VAv6Ja=O8@z3Lb4VqiooUVD5zO#R7?RGmnpm06JUVYA6;V<@u;_M17`g7NV7M;3H8ZIFD3uJb7KQsh8dUvp6IOfR>e;Ev=uOxb8tfVo&4SGm*B$rXUL)V!X0Xoo23Va7nvQ z+x>lHIO6+j6ms=`NKhu{>vq233gIX_G}vQzK%0xZj(NmewyTX4VD(ZwEn#=x_4pUt zgQ5tIwNpDvd(r}$qeUgPr*~(KG~6kFl%cQLPRYoV^EuG!a=F!89H)JouFUP_1 zI-2rajBaRnuwLbL_P!$o#0x^5xk*1hC0$F07^IrJ#hcEBtsr@3WpFR}{IVVZ7);SH z;v}q3j$Oc7T99%Xy+LlYHhNE$~!%BEA|w?p`}dtj&7u7>x0;V`+pV><&5E(l-+g}YhbGu~D~m`+`s_y@%HWk> z?}eHYuih(0+5$@{om-kJ_>I^STOu$Lj_8XkbQm_YHgV4V@m{f#X?QBNG?U9bGgg5v z`BxW}c(`)o6sD|SRt0Km?CT0c{mr<(W6O!52vWg31+Nl$b!uy9-*)9M6M!Nmt5J1v zoFr(;`_6l0dR=QTKKg-l`ssueN^JFYKDO~X+wK&mO9NiZ_aD8btF6j4^UKt1V=B%J zf7!b^G^FU4!~7h~3}n+744c|ND!-ehoZ!<|6v^8F2vl)h`#-(h@tOAT@N36{o6@Vx zu}eD0L*O`lAboZH%DZ?Yk<23@RScuIJub8p%rTAFZN(;HtR*XG6Fd|=_q~Q#y7~n#=54I|edc;k7VCl~I z@@ZS=;*G$r8YZBT%;x{A-K(PN0Cu%;FYd0zU5mTByE_~AQe-0=cS?cc?oyz*ySu~2 ziaQ%9-rLjj_CNmX-aKR_Yt6&AlFVc#$#|@;-k$1}hj`ErGKistyY%)3%-K-#vEia^ zJUCy4$6}NHz_ylif6MJNusr(2h`N=dsihhrX0)^ySdHAQcy%BB_S=z_v8ceX<89t; zx{Od!T-=p>8z|s_l;fLvI)l;U=_IZIosa^Jr$xNamAK2Ns}rl8ni}g=BJVKShisLM zPoJt<(y404A1S(yG)VCXfqlG}n<)k{_J7P4+9W3dzIPP2LQgWt@C9_i>-n=Z#HPW}cgxnppw(W#SRhCW-3{N!1X z3F;UxtEX4zU~XraY1xFGLSA(54Mxa+oQ~p~_kAB)SypxOn%ag8MN1mHMlOQ=*sjfD z$9-E}&66geBBC?j`eI=aK#qzg3)dT))Uz!@(1s+!RU~p}35Gp^iRQD9r6nWds$6kG z@8m%IfZ^hF&yDrMT5VE?$IG2Q;KGf#c@q%C(x%XT3}GbK;SP+-*ci=~?1ZiWj!T3D z>5zj>KIL(Ze~aoWNYEX;qL*wQF9Amp|JEDC(uz~Vh!LSrSDiGZvNLWtjP)68-X^BiQF8`b@$fUEu;n{ zGV^+EIn&i_j-?!pgR}Dzi_siN`zoL`-Qp*59CI1Pgk-_pKBE%u9uInBY0+UyMd{W4 zXLOXr)fVILtm6qr6t((1$4v*HEzzEEivQs#c$lYn@^obrEg>72j0$(FXZZW?`M*=_^9_q2NQgoekQ&+fjH7mr%y zMC$P1JIHlK@dP9y78mNZ-?!r5ZS6B*rjbNGCLPMUB zbTLU4D(UtTX_@WhQ%&@X)5e0T^A6Oy5=wN;gPpB=^XHAI&4!y|5w)}=L_B59CQI%& z#Cd)@#P2}CCHsh{;5F$*seOeyt)LK+j@^M-!3vxgU7pdM_m!|BS;fCL5?Ia{#}pto zgOlEtMqE@|wh7mknerETbg0Dn!n?&1y66TxsNHaZ-FoTJLlZkjBOeE@GmQa5vpIDf zDhN}{K^G!-lRT>GvT^!zl_8D6cAHsT%^;;Cz58HgBpoI5KxPq98w3wr0;bsMo03+| z#c4OY#^%rg+Q?emTn#kH*ft`1)wx@+N=>`J1=mddB^^g)#J#U6xE@IToCon3#TI=>kvh`ffa*4}s0kGhb6 z@+gI)Q)u9AUXmHC2_Q5Ly%B}kob7C8Lf>c#;Zg1D_TT*!^&dzK?GEuwl@OBkm3z|% zeU{%_+j-1j+v>fAAMd8)K@Y(arMOSxRC_J_dm`!I5IIomt#W6SQH3h-r5ppJtQN`Q zukuHNGPJV58N`lSH-02$qMKL4=^0J^ND~{483ge-_w1L-VW0Yyq_O2#_xUa=aU(4G zmTC-L$woZ&3!A^*0+1-c-kbA!W(hAHOCUKZYV=~Ssvj>HuqWuf_Hr$@6QgbA=`7qo zW(xB}c2GwytW<2e&va)80q*f{aqsMD9I?q+Ummu1el}NeD4aO(v0x=LP{I}J5Y~tY zjJ`!U#NHJiMQw~;t6cFq^TE7MUjprllnNy^_dDNp;fYk%5T1-aH(aqq0h1ZjIp-cD zdLvV-*Ff=y_~T~NtLw&^V^3gCD#38ZtcmEm|j-I9`wQO7ei=V&L)- ze_jhz@PT)W^P3oT+{>=BQK4yrOH%(ZV+Zu0pxt~@D7F-)fv9}?vn=22cU1N}TMA&h z1~==*Vu=i-MujraK-MB8=q=FUKe+@3!)8C)&_{;D%iu;V{9TEQj`g}K7f*e}8)5!7 zg5Rk1#9itLx@zOnxPHKT!Oj$O88VFr51Da=-7`qEFFgfd#?Vq)^^6uP$48dM7OrPq zRl*OUh$FgGp)ozAd<|8;$;uU|193M~4HTwvO=*$}GD@*5{ck8Ku`U(pWK`++p86fF z8NUtUL@qzds0`DI`{c8_z_@w6mZ$9V_~#7Kv+UoK*3j6W9Vzx8V8w<{+W7}+Nr zdgU@55EI4ikXzFR!W5uaQ*j3i#9oqQq(k52%7E-t`mQK-Ab^C(ljvU2KYtq;H=LX5 zd|W{`-H4wS=9psR5&j4qNJ&U=Cr#(ysUqpn5_aGCCJsEE+kVBYf85Chz^kd|45~L;HY_lt$9z@C;KFL>C&3<~I|3z2ksfn#_iMj4ydT%3Eo`oJa6LH;h3h$hPdq zroVSz{LlTB2>=PO(?e*?G-T=Jb;FxRTYuRcj5AM?Nd{zs_jP{^W9)clS+ZBzl_ zbpE4|52)^dx*$hH)~+XMr*thn9TpJ-P?ztE;NwrVOq?;XJ;4DMaVMo=gkk>=y^*1Q z?)wMS!`;0j%ux%3(-iifEGCv3NfC324klG{j)l{0;(LP$vad#k^?{byUm15>-;c}( z(q3y0rqp8OSvEe;n{4@iFtark2#om?fFJJLX>y|yw~;?^*b8;!&h6*7U$?m3Z-Q@W zF{;NpYXA+Onayb%HrR)_3uUw1>L8wN)#D{71IK8x4&j?k%Bn^KDO0tVnYrfV#uhg6 zu967Kqz?__>~FX}T8eHA=A3S@m(8|Qit}U8!AO`w4SmZaP4sPPJl-7&l$uE7hZf{p zQ}zPPO$9k@4*79#=VvS9m$->BBbd>1iLxz|$A^GyA_i+&ehOBTItqp;K$V|hES#$B zzN-~9#Kkfz)*jQeH3&RlDH0-D0GdqK8+j{5FU+Dyq#d$;Tg3p6;9Joa+N%vS?{#^o zJ(^gC*84J?IgNZH9YWGioPV3Y9u72!ZdM>1h(xbZ(taupyJ}XJMrq)ULEO5oyb2k; zp)U*pvbVe>>Ok+$>+iJpI4Np1|51n}`kYsak8abFEHD3Y<6YrOF}AHhm3Mx(A%crFYb+})E-Jp2Kw^9vdJKVO%bXp%pj@3S==L7^Uxp#1T1|c6JnAGRtRL1f7 zM=3|D@!A$&eTkgdV%Vc$v5YXHye(F~=z7CBbfhb&L?AXeub&%b^<0@k@zNDCpk&S$KalNdz;s#Bb46E^T85hhEg_Kus|Ao0x0%mWP-}_8uj}UH? z6uGiUPiZjGUYzw4?}0v7#xk6TCjRFgrFdF(j;g=2;O;}yXuH-$az7NffKyt2<<;Ma^nM{Wl@MASYMp`RqEtNrHG4<12S8qRRSDU&6|%%lw+2@P(0

C_0t53JE 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 K7i&);Q2ztAsE)V* literal 0 HcmV?d00001 diff --git a/guides/assets/ci-testcontainers2.webp b/guides/assets/ci-testcontainers2.webp new file mode 100644 index 0000000000000000000000000000000000000000..7f73fac8631b13ffe1f005c17f1860a98d50757e GIT binary patch literal 92634 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 z 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 literal 0 HcmV?d00001 diff --git a/guides/assets/ci-testcontainers3.webp b/guides/assets/ci-testcontainers3.webp new file mode 100644 index 0000000000000000000000000000000000000000..934a1d00d34ff399f4ce5b2b76da6a3e2e864156 GIT binary patch literal 37762 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 S+W!?U;1~=j{;@ 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 S$R}4Rd|AO^i!CW9}Duecfu5%7h8h#HS!RgA= zK3HrfO`6+6qj-0#_Gwn4Pe+{q00DG`WB`bF zLvxi+L&-)5a)BBQB>$m$=G(U^f}?r2%n|POqQPU-6J)pPrd&qOSb8t)Pbi+2cFISH zsPK4p$0C*gGS4gLndxkR{y!%F;SqoU624zRh{P8A^$rY-q16?FW z7G`e@JMw@Y+>nJ9b#%BhBzX){(QyD#G~nJPDa;(}ed_>%G+{47u7;&5nFrKumRjq* z8eKg20W`Tn#rVPrpbl8Xj+3~Fy;*=r9av0Ag_6iJ@J1dHSpaZlpApFKw5g%kyy*dv zP8)5s--7gj`?Ha`#EHCAj2SR12(mkK>OCD6VG2EXu*rN*#&<3%>(wG^CxkD3Qxe=e zi+U(+P+Fb^Fa;VRq)E`bTy*qJ)r>$mU7IE$Y93|I4}#4I7Vs>tO+f4uB>CX8IzeCg zo*j2rGiXD&2w(=eWFy>;0001WkS`>3VkJYDu>TSv(>ss=0000VR5Xe!vJvt279A^` zMApjwtd(r9>dH;xh>5M0{aGs6U)7YG#Ss%*EBdlkvcIb-HY&t_S#yZKhV~@28!-}J znf4YPE1X62r|65(yfG6l%}cKrV5QfKuu|*A*eP}5>zSxnXx45+V#pHWnM4LrpAn>*RD{f*jRL}H#m#w zT;eaKbBMl`&LV4Ne^yd&6hvQ2=MjAk>__#NIE(0SVn3|8#9u>u5&dP(BKjNHkLxaR H6374moL1iC literal 0 HcmV?d00001 diff --git a/guides/ravendb-python-ci-with-test-driver-and-testcontainers.mdx b/guides/ravendb-python-ci-with-test-driver-and-testcontainers.mdx new file mode 100644 index 0000000000..b2aa430b8b --- /dev/null +++ b/guides/ravendb-python-ci-with-test-driver-and-testcontainers.mdx @@ -0,0 +1,501 @@ +--- +title: "Powerful CI for Python: RavenDB Test Driver & Testcontainers" +tags: [python, testing, docker, containers] +icon: "test" +description: "Test Python apps against a real, disposable RavenDB server with Testcontainers and the Test Driver, then run it on GitHub Actions to catch bugs mocks miss." +published_at: 2026-10-21 +see_also: + - title: "Test Driver" + link: "start/test-driver" + source: "docs" + path: "Getting Started" + - title: "RavenDB Docker Images" + link: "start/containers/image-usage" + source: "docs" + path: "Getting Started > Containers" + - title: "Stale Indexes" + link: "indexes/stale-indexes" + source: "docs" + path: "Indexes" +author: "Paweł Lachowski" +proficiency_level: "Beginner" +--- + +import Admonition from '@theme/Admonition'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import CodeBlock from '@theme/CodeBlock'; +import LanguageSwitcher from "@site/src/components/LanguageSwitcher"; +import LanguageContent from "@site/src/components/LanguageContent"; +import Image from "@theme/IdealImage"; + +## Green tests, real bugs + +Sooner or later, every application that stores data needs tests that touch the database, and every team has to decide what those tests talk to. This guide answers that for Python apps on RavenDB: pytest tests that run against a real RavenDB server started in Docker by Testcontainers, on every pull request, with GitHub Actions. First, though, the two common answers, because each one has a price. + +The first is a mock: a stand-in object that pretends to be the database. It's fast, it needs no setup, and every test gets exactly the data it asks for. That makes mocks a great fit for checking your own logic, like how an order's total is calculated. But a mock only knows what you taught it. It returns whatever you told it to return, so a test against a mock confirms that your code calls the database. It can't tell you what the database really does in response, and some of the nastiest bugs live right there. + +The second answer is a real database. Now the tests see what production sees: how data is stored and read back, how ids are generated, how queries behave. That's the more honest test, but it has costs. Someone has to install and run the server, on every developer's machine and in CI. Some vendors ease that with an emulator, a local stand-in for their database service, but an emulator is a separate implementation, so it can still behave differently from the real thing. Tests that share one database step on each other's data and fail in confusing ways. And a slow suite gets run less often, until it quietly stops protecting anything. + +RavenDB's Python Test Driver gives you tests against a real database without most of those costs. The Testcontainers library starts a disposable RavenDB server in Docker, so there's nothing to install or maintain. The driver gives every test that uses the database its own fresh one, so tests can't interfere with each other. The whole suite runs in seconds, and in CI, a pull request that breaks something turns red before anyone merges it. + +All you need is Python and Docker, and every example uses pytest. + +## What "real" needs to mean in CI + +Before we build anything, let's turn the costs from the introduction into requirements a team would actually hold us to: + +* A real server: the tests run against the RavenDB server, not an emulator or an in-memory imitation. +* No data leaking between tests: no test sees another test's data, so tests pass or fail on their own, in any order. +* No fixed ports and no setup wizard, so there's nothing to free up and nothing to click through. +* Fast enough that nobody skips it. + +That last point is important. A suite that takes ten minutes to run is annoying, and annoying gets ignored. + +## RavenDB Test Driver + +Almost every requirement on that list is something RavenDB already solves with its [Test Driver](https://docs.ravendb.net/start/test-driver), available for .NET, Java, Node.js, and Python. We'll use the Python one, [ravendb-test-driver](https://pypi.org/project/ravendb-test-driver/). Here's how it maps to our list: + +* A real server: the driver runs every test against a real RavenDB server. +* No data leaking between tests: each call to `get_document_store()` creates a new database for that test, and closing the driver deletes it. +* Fast enough: one server serves the whole test session, and creating a database takes a fraction of a second. + +The driver can also wait for indexes, and it has hooks to configure and seed each new database. The guide [Writing unit tests with RavenDB Python Test Driver](./writing-unit-tests-with-ravendb-python-test-driver) covers those in detail, so here we'll focus on the server. + +The driver can start a server itself, or it can attach to a server we already run, given its URL. For CI, attaching is the better fit. We pick the exact RavenDB image, the test machine needs no .NET, and the same tests can attach to a container on a laptop or to a server the CI system starts. The split is simple: something else owns the server, and the driver owns the databases inside it. + +For these tests, get a free [developer license](https://ravendb.net/dev): it covers development and CI use. We'll hand it to the server through an environment variable when we start it. See the [licensing overview](https://docs.ravendb.net/licensing/overview) for the details. + +## Set up and start the server + +Our example is the order service of an online bookshop with a few stores in different cities. Here's its project as the team has it today, before any of the changes in this guide. It's one folder, the root of its repository: + +```text +bookshop/ +├── src/ # the app +│ ├── domain.py # the Book and Order classes +│ └── order_service.py # placing orders, and the returns check +└── tests/ + ├── fake_store.py # the mock that stands in for RavenDB + └── test_mocked.py # the mocked tests, all green +``` + +Why start from the app and not from RavenDB? Because our tests aren't there to check RavenDB. They check our code: what it does with the data RavenDB hands back. Running pytest in this folder runs the mocked tests, and they pass. + +Here's what we want. The same pytest command should also start a real RavenDB server, give every new test its own database on that server, and clean everything up when the run ends, on any machine with Docker. The Test Driver takes care of the databases. For the server, we'll use [Testcontainers](https://testcontainers-python.readthedocs.io/en/latest/), a library that starts Docker containers from test code and removes them afterward. Starting a container takes about 5 seconds, so we start one for the whole test run, and every test shares it. Only the databases are per test, and they're cheap: after the first one, each takes about a tenth of a second. + +Let's build it. + +### Create a virtual environment + +First, the packages need a home. You'll need Python and [Docker](https://docs.docker.com/get-started/get-docker/) running. Open a terminal in the project's folder, the one that contains `src` and `tests`. In Python, a project is just a folder with code in it, so there's nothing to create. We'll install the packages into a [virtual environment](https://docs.python.org/3/library/venv.html), a private set of packages for this project, so they don't mix with anything else on your machine: + +```sh +python -m venv .venv +``` + +Then activate it. On Windows, in PowerShell, run `.venv\Scripts\Activate.ps1`. On macOS and Linux, run `source .venv/bin/activate`. Your prompt now starts with `(.venv)`, and that's the terminal to use for every command in this guide. + +### Install the packages + +Next, create a `requirements.txt` file in the project's folder, next to `src` and `tests`, with the four packages the suite needs. We pin exact versions, so every machine, including the CI runner later, gets the same ones: + +```text +ravendb==7.2.6.post1 +ravendb-test-driver==7.2.6.post1 +testcontainers==4.15.0 +pytest==8.4.2 +``` + +Then install them: + +```sh +pip install -r requirements.txt +``` + +The first installation takes a while, because pip also downloads the `ravendb-embedded` wheel the driver depends on, about 240 MB, even in attach mode. The `ravendb/ravendb:7.2.7` image, about 385 MB, comes the first time the tests run. After that, everything comes from local caches. + +### Tell pytest where everything is + +Then add a `pytest.ini` file next to `requirements.txt`. It tells pytest to look for tests in the `tests` folder, and to import the app's code from the project's folder, so a test can write `from src.domain import Order`: + +```ini +[pytest] +pythonpath = . +testpaths = tests +python_files = test_*.py +addopts = -q +``` + +### Start RavenDB in a container + +Now we need a function that starts RavenDB in a container. The container has to come up with no setup wizard, no license prompt, and no data left on disk, because nobody is there to click through anything. It also has to be ready to accept requests before the first test runs. Create a `testing` folder with an empty `__init__.py` file, so Python can import from it, and write the function in `testing/ravendb_container.py`: + +```py +import os + +from testcontainers.core.container import DockerContainer +from testcontainers.core.wait_strategies import LogMessageWaitStrategy + +IMAGE = os.environ.get("RAVENDB_IMAGE", "ravendb/ravendb:7.2.7") + + +def start_ravendb() -> DockerContainer: + container = ( + DockerContainer(IMAGE) + .with_exposed_ports(8080) + .with_env("RAVEN_Setup_Mode", "None") + .with_env("RAVEN_Security_UnsecuredAccessAllowed", "PublicNetwork") + .with_env("RAVEN_License_Eula_Accepted", "true") + .with_env("RAVEN_ARGS", "--RunInMemory=true") + .waiting_for(LogMessageWaitStrategy("Server started")) + ) + + license_json = os.environ.get("RAVEN_LICENSE") + if license_json: + container = container.with_env("RAVEN_License", license_json) + + container.start() + return container + + +def url_of(container: DockerContainer) -> str: + return f"http://{container.get_container_host_ip()}:{container.get_exposed_port(8080)}" +``` + +The line that makes this container RavenDB is `DockerContainer(IMAGE)`. `ravendb/ravendb:7.2.7` is RavenDB's official image on [Docker Hub](https://hub.docker.com/r/ravendb/ravendb): a packaged RavenDB server that Docker can run on any machine. Testcontainers asks Docker to start a container from that image, and the first time, Docker downloads it. We pin the tag to the server version we run in production, here 7.2.7, which keeps runs reproducible and the server on the same 7.2 release line as the client. The `RAVENDB_IMAGE` variable lets us try a different version without touching the code. + +Each setting removes one thing that would otherwise need a human (see [image usage](https://docs.ravendb.net/start/containers/image-usage) for all the options): + +* `RAVEN_Setup_Mode=None` skips the setup wizard. +* `RAVEN_Security_UnsecuredAccessAllowed=PublicNetwork` lets the tests connect without certificates, whatever the Docker network looks like. It's meant for disposable test containers only. +* `RAVEN_License_Eula_Accepted=true` accepts the license agreement up front. +* `RAVEN_ARGS=--RunInMemory=true` keeps all data in memory, so nothing survives the container. +* `RAVEN_License`, which is optional, carries a license from the environment. + +If `RAVEN_LICENSE` is set in your environment, `start_ravendb` passes it to the container, and the server applies it the first time a test creates a database. Keep that in mind if you already have a license set for other work: the tests pick it up too. + +The wait strategy matters too. Docker considers a container as started as soon as its process runs, which is before RavenDB accepts requests. Waiting for the `Server started` log line means our first test never hits a server that's still booting. + +Finally, `url_of` reads the URL from the container instead of hardcoding one. Testcontainers maps port 8080 to a random free port, so parallel runs never collide. + +### Connect the container to the Test Driver + +Finally, the Test Driver needs to know about the container. We'll use a session-scoped [pytest fixture](https://docs.pytest.org/en/stable/how-to/fixtures.html) in `tests/conftest.py`, a file pytest loads automatically, so the fixture runs once for the whole test run. It decides where the server comes from and tells the driver about it: + +```py +import os + +import pytest +from ravendb_test_driver import RavenTestDriver + +from testing.ravendb_container import start_ravendb, url_of + + +@pytest.fixture(scope="session") +def ravendb_server(): + # A server is already running (for example, a CI service container), + # and the driver picks the variable up by itself. Start nothing. + if os.environ.get("RAVENDB_TEST_SERVER_URL"): + yield os.environ["RAVENDB_TEST_SERVER_URL"] + RavenTestDriver.stop_test_server() + return + + # Otherwise, start a container and attach to it. + container = start_ravendb() + try: + url = url_of(container) + RavenTestDriver.configure_external_server(url) + yield url + RavenTestDriver.stop_test_server() + finally: + container.stop() +``` + +The fixture checks `RAVENDB_TEST_SERVER_URL` first, because in CI we may already have a server and don't want a second one. If it's set, the driver attaches to that server by itself and the fixture starts no additional instances. Otherwise, it starts a container and passes its URL to `configure_external_server(url)`. We'll see this setup working in the next section, when the first test talks to the server. + +## A database per test, and the bug caught + +With that, the server side is ready. Now each test needs its own database, and that's exactly what `get_document_store()` gives us: it creates a new database and returns a store for it. When the test ends and the driver is closed, the driver deletes that database. + + +A clean, isolated database for every test means no test can contaminate another test's results. Sharing one database and cleaning up after each test sounds simpler, but cleanup code is easy to get wrong: one leftover document can make a different test fail days later, depending on the order the tests run in. Rolling back a transaction after each test, a common trick with SQL databases, only covers writes made over one connection, and our tests save through one session while the service reads through its own. For a suite with thousands of tests, you can still share one database per test module. + + +Let's add three fixtures that run for every test. They give each test a driver, a fresh database, and, for the tests that need one, a book in stock: + +```py +@pytest.fixture +def driver(ravendb_server): + # Closing the driver deletes every database it created. + with RavenTestDriver() as d: + yield d + + +@pytest.fixture +def store(driver): + return driver.get_document_store() + + +@pytest.fixture +def stocked(store): + def _seed(stock=10): + with store.open_session() as s: + s.store(Book("Dune", "Frank Herbert", 12.5, stock), "books/dune") + s.save_changes() + return store + return _seed +``` + +Here's what the server looks like in the middle of a run, in RavenDB Studio: every test that asks for a store gets its own database. If you want to look around yourself, the driver can pause a test and keep its database open for you, as shown in the Python driver guide's [debugging section](./writing-unit-tests-with-ravendb-python-test-driver#6-debugging-the-database). + +RavenDB Studio databases list during a test run, showing a separate test_1 and test_2 database for each test + +Now let's put the setup to work on a real change. The bookshop's developers add a simple feature: customers can return a book within 30 days of ordering it. Every order already records when it was placed, so the check subtracts that date from today. The mocked tests pass, CI gives the pull request a green check, and the feature ships. The next morning, every return request fails. + +What happened? JSON has no date type, so the client saved the order date as text in the standard ISO 8601 format. On the way back, the Python client builds the object from the JSON, and unless the class tells it how to read a field, a field that was saved as text comes back as text. Python can't subtract text from a date. The mocked tests never noticed, because a mock hands back exactly the object you gave it. Let's write the test that would have caught it. + +The check lives in `src/order_service.py`, and it's short: load the order, subtract its date from now, and compare the result with 30 days: + +```py +RETURN_WINDOW = timedelta(days=30) + +def can_return(self, order_id: str, now: datetime) -> bool: + with self.store.open_session() as session: + order = session.load(order_id, Order) + return now - order.placed_at <= RETURN_WINDOW +``` + +Here's the test the team wrote against the mock, in `tests/test_mocked.py`. The test gives the order an id itself, in RavenDB's usual format, `orders/1-A`, so it knows which order to ask about. The mock hands back the very order the test put in, date and all, so the test passes: + +```py +NOW = datetime(2026, 10, 1, 12, 0, tzinfo=timezone.utc) + + +def test_order_from_last_week_can_be_returned(): + order = Order("customers/1", "books/dune", 1, 12.5, placed_at=NOW - timedelta(days=7)) + svc = OrderService(FakeStore(orders={"orders/1-A": order})) + assert svc.can_return("orders/1-A", NOW) +``` + +There's nothing wrong with this test as a check of the logic, and it stays in the suite: mocks are fast and good at exactly that. It just can't see what the database does. So next to it, let's write the same test against the real server, in `tests/test_real.py`. The only difference is where the order lives: we store it in the test's own database, then ask the service. The repository also has its twin, for an order from two months ago that can't be returned: + +```py +def test_order_from_last_week_can_be_returned(store): + with store.open_session() as s: + s.store(Order("customers/1", "books/dune", 1, 12.5, placed_at=NOW - timedelta(days=7)), "orders/1-A") + s.save_changes() + assert OrderService(store).can_return("orders/1-A", NOW) +``` + +Let's run the suite. The `--tb=short` option keeps each failure down to the lines that matter: + +```sh +python -m pytest tests/ --tb=short +``` + +pytest reports the failure: + +```text +__________________ test_order_from_last_week_can_be_returned __________________ +tests/test_real.py:18: in test_order_from_last_week_can_be_returned + assert OrderService(store).can_return("orders/1-A", NOW) +src/order_service.py:39: in can_return + return now - order.placed_at <= RETURN_WINDOW +E TypeError: unsupported operand type(s) for -: 'datetime.datetime' and 'str' +``` + +The twin fails the same way, while both mocked tests stay green: + +pytest output with both real-server returns tests failing with a TypeError while the mocked tests pass + +There's our production bug, caught before it ships. The order went into the database with a date and came back as text. The driver deletes each test's database when the test ends, so to look at the stored order, we kept a copy of that database open in RavenDB Studio: + +RavenDB Studio showing the stored orders/1-A document with placed_at saved as text without a time zone + +The text also has no time zone: the Python client writes the date without its offset, so reading it back correctly is up to the class. + +The fix belongs in the `Order` class, in `src/domain.py`. When a class has a `from_json` class method, the client library calls it to build the object on load. We parse the text back into a date with [`datetime.fromisoformat`](https://docs.python.org/3/library/datetime.html#datetime.datetime.fromisoformat), and because we always store UTC, we mark it as UTC: + +```py +@classmethod +def from_json(cls, json_dict: dict) -> "Order": + # The database hands back the date as text, without its time zone. + # We always store UTC, so parse it and mark it as UTC. + placed_at = datetime.fromisoformat(json_dict["placed_at"]).replace(tzinfo=timezone.utc) + return cls(json_dict["customer_id"], json_dict["book_id"], + json_dict["quantity"], json_dict["total"], placed_at) +``` + +Parsing alone wouldn't be enough, because the date would still have no time zone, and Python refuses to compare it with a UTC "now". The mock would have accepted that half fix too. Only the real server catches it. + +Let's rerun the returns tests: the one we wrote, its twin, and the two mocked versions: + +```sh +python -m pytest tests/ -k returned +``` + +All four pass: + +```text +.... [100%] +4 passed, 6 deselected in 6.90s +``` + +The returns feature now works against the same server it will meet in production. + +## Tests a mock could never write + +The returns bug came from one difference between our mock and RavenDB. Our bookshop's code depends on a few more of them. Each one below is a real situation in the shop where the mock gives one answer and RavenDB gives another. The tests go in `tests/test_real.py`, next to the returns tests. + +### Ids carry a node tag + +The bookshop's confirmation email shows the order number, taken from the order's id. In the returns tests, we picked the id ourselves. New orders get theirs from the store instead. Our mock numbers the orders `orders/1`, `orders/2`, and so on, because that's what we coded. RavenDB gives the first one `orders/1-A`: the suffix is the tag of the cluster node that [generated the id](https://docs.ravendb.net/server/kb/document-identifier-generation). Code that strips `orders/` and turns the rest into a number works with the mock and breaks with the real thing. Let's pin down the real shape of the id: + +```py +def test_server_appends_a_node_tag_to_the_id(stocked): + store = stocked() + order_id = OrderService(store).place_order("customers/1", "books/dune", 1)["id"] + assert order_id != "orders/1" + head, _, tag = order_id.partition("-") + assert head.startswith("orders/") and tag.isalpha() +``` + +On a real server, the first order gets `orders/1-A`, and the test passes. Any code that builds or parses order numbers now has a test that knows the truth. + +### Indexing is asynchronous + +Right after checkout, customers open their order history. The history page runs a query, and in RavenDB, queries read from indexes that are updated in the background, after a save completes. So a query right after a save can miss the order that was just placed. The docs explain why in [stale indexes](https://docs.ravendb.net/indexes/stale-indexes). Our mock's query returns whatever list we gave it, so it never misses anything. + +To make the effect easy to see, the test saves 200 orders for one customer at once, as a busy customer during a sale might, then queries that customer's history. There's one trap in testing this. A query that creates a new index waits until the index is built, so on a fresh database, everything looks consistent. That's why the test warms the index first, then saves the 200 orders and queries immediately. + +We print that immediate count instead of asserting it, because a faster machine can see more, and a test that asserts "0 results" would fail for no real reason. After `wait_for_indexing`, the test asserts all 200: + +```py +def warm_up_index(store): + # A query that creates an index waits for it to be built, so a fresh + # database would hide the staleness we want to see. + with store.open_session() as s: + s.store(Order("customers/warmup", "books/dune", 1, 12.5)) + s.save_changes() + list(store.open_session().query(object_type=Order) + .wait_for_non_stale_results().where_equals("customer_id", "customers/warmup")) + + +def test_indexing_is_asynchronous(store): + warm_up_index(store) + + with store.open_session() as s: + for _ in range(200): + s.store(Order("customers/bulk", "books/dune", 1, 12.5)) + s.save_changes() + + immediate = list(store.open_session().query(object_type=Order) + .where_equals("customer_id", "customers/bulk")) + print(f"immediately after saving: {len(immediate)} of 200") + + RavenTestDriver.wait_for_indexing(store) + waited = list(store.open_session().query(object_type=Order) + .where_equals("customer_id", "customers/bulk")) + assert len(waited) == 200 +``` + +Run with `-s` to see the printed count. On a developer laptop, the query right after saving found none of the new orders: + +```text +immediately after saving: 0 of 200 +``` + +After `wait_for_indexing`, all 200 are there, and the test passes. + +`wait_for_indexing` is the right tool for a test, but the checkout code needs its own answer, so the customer sees their order. RavenDB's documented fix is `wait_for_indexes_after_save_changes`: the save itself waits until the indexes have caught up, so a query right after it sees everything. Let's commit a test of that pattern too: + +```py +def test_wait_for_indexes_after_save_changes(store): + warm_up_index(store) + + with store.open_session() as s: + s.advanced.wait_for_indexes_after_save_changes() + for _ in range(200): + s.store(Order("customers/documented", "books/dune", 1, 12.5)) + s.save_changes() + + found = list(store.open_session().query(object_type=Order) + .where_equals("customer_id", "customers/documented")) + assert len(found) == 200 +``` + +For a single query that must be up to date, you can use `wait_for_non_stale_results()` on the query itself instead. + +Our suite now covers the returns fix and two more places where the bookshop depends on what RavenDB really does. Let's run the whole thing: + +```sh +python -m pytest tests/ --tb=short +``` + +Every test passes: five mocked tests that check the app's own logic and the returns feature, and five against the real server: + +pytest output showing all 10 tests passing + +The time in pytest's summary line covers the test run itself. The whole command, including Python start-up and loading the packages, takes about 17 seconds on a laptop. The next step is to run it on every push. + +## Running it on GitHub Actions + +Locally, the suite already runs with one command. On GitHub Actions, it's the same command on a fresh machine. A [GitHub-hosted runner](https://docs.github.com/en/actions/using-github-hosted-runners/using-github-hosted-runners/about-github-hosted-runners) is a new virtual machine for every job, so anything your environment keeps between runs, from the pip packages to the RavenDB image, has to be fetched again or restored from a cache. + +Our goal is simple: every push and every pull request runs the whole suite, so a pull request like the one that broke returns turns red before anyone merges it. We'll use an `ubuntu-latest` runner, because it comes with Docker already running, so Testcontainers works there exactly as it does on your laptop. Hosted macOS runners have no Docker, and Windows runners run Windows containers only, so the RavenDB image needs a Linux runner. + +### The workflow + +GitHub Actions follow instructions kept in the repository itself: every YAML file in the `.github/workflows` folder is a workflow, and each one says two things. The first is when to run, for example on a push or a pull request. The second is what to run, as a list of steps. When something matching the "when" happens, GitHub starts a fresh virtual machine, copies the repository onto it, and runs the steps in order. + +Our workflow runs on every push to `main` and on every pull request, and its steps are exactly what you did by hand: check out the code, set up Python, install the pinned packages, and run the tests. Save it as `.github/workflows/tests.yml`: + +```yaml +name: tests + +on: + push: + branches: [main] + pull_request: + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - uses: actions/setup-python@v7 + with: + python-version: "3.13" + cache: pip + cache-dependency-path: requirements.txt + - run: pip install -r requirements.txt + - run: python -m pytest tests/ --tb=short + env: + RAVEN_LICENSE: ${{ secrets.RAVEN_LICENSE }} +``` + +The workflow is the four commands you ran by hand, and the real-server tests start their RavenDB container on the runner, just like on your laptop. One setting is there for speed: `cache: pip` keeps pip's downloads between runs, so the large `ravendb-embedded` wheel is downloaded only when `requirements.txt` changes. + +The image itself is pulled on every run, which takes a few seconds on GitHub's network. Pinning the tag doesn't change that, but it keeps every run on the same server version. + +The license works the same way as on your laptop. Store your developer license as a [repository secret](https://docs.github.com/en/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions) named `RAVEN_LICENSE`, and the tests pass it to the container. Note its renewal date: a developer license expires after 6 months, and CI turns red when it does. + +### Catching the bug in a pull request + +That's all the setup there is. GitHub Actions is on by default, so once the file is on the default branch, every run shows up on the repository's Actions tab. GitHub doesn't know anything about our tests: it only checks whether each step succeeded. When a test fails, pytest exits with an error, the step fails, and GitHub marks the run, and the pull request's check, red. If you're new to GitHub Actions, the [quickstart](https://docs.github.com/en/actions/writing-workflows/quickstart) covers the basics. + +Let's see it catch our bug. Open a pull request that deletes the `from_json` method from `Order`. It's the kind of change that slips through review: the code still reads fine, and every mocked test still passes. On the pull request, the check turns red. Its run page shows the failed `test` job, with the annotation "Process completed with exit code 1": that's pytest reporting failed tests. The job's log shows the same `TypeError` we caught locally. + +GitHub Actions run page for the pull request with the failed test job and the exit code 1 annotation + +That's the story from the first section, played out properly. The pull request that shipped a broken returns feature now arrives with a red check that points straight at the bug, while it's still in review. + +## Summary + +You turned a mock-only pytest suite into one that also runs against a real, disposable RavenDB server, with a fresh database per test, and wired it into GitHub Actions so a breaking pull request turns red before it merges. + +- Keep mocked tests for your own logic, but add real-server tests for anything that depends on what the database hands back, since a mock only returns what you taught it and missed the date-as-text bug entirely. +- Let Testcontainers own the server and the Test Driver own the databases: attaching to a pinned image gives reproducible runs, random ports avoid collisions, and no .NET is needed on the test machine. +- Have the session fixture check `RAVENDB_TEST_SERVER_URL` before starting a container, so the same suite attaches to a server CI already runs and starts its own only when there isn't one. +- Real-server tests surface behavior a mock hides, such as node-tagged ids like `orders/1-A` and asynchronous indexing, so test the production fix (`wait_for_indexes_after_save_changes`) rather than relying on `wait_for_indexing` alone. From fad3a24c535a0aa506c9eb71059ab27e50b51e4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Lachowski?= Date: Fri, 23 Oct 2026 09:13:41 +0200 Subject: [PATCH 2/2] RDBTC-266 Guide: link sample gist, pin 7.2.7, add internal links and comparison table - Link the bookshop sample gist and require Python 3.11+ - Pin ravendb and ravendb-test-driver to 7.2.7, matching the server image - Add internal links and a mock vs. RavenDB comparison table --- ...ci-with-test-driver-and-testcontainers.mdx | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/guides/ravendb-python-ci-with-test-driver-and-testcontainers.mdx b/guides/ravendb-python-ci-with-test-driver-and-testcontainers.mdx index b2aa430b8b..b01c868da6 100644 --- a/guides/ravendb-python-ci-with-test-driver-and-testcontainers.mdx +++ b/guides/ravendb-python-ci-with-test-driver-and-testcontainers.mdx @@ -39,7 +39,7 @@ The second answer is a real database. Now the tests see what production sees: ho RavenDB's Python Test Driver gives you tests against a real database without most of those costs. The Testcontainers library starts a disposable RavenDB server in Docker, so there's nothing to install or maintain. The driver gives every test that uses the database its own fresh one, so tests can't interfere with each other. The whole suite runs in seconds, and in CI, a pull request that breaks something turns red before anyone merges it. -All you need is Python and Docker, and every example uses pytest. +All you need is Python 3.11 or later and Docker, and every example uses pytest. ## What "real" needs to mean in CI @@ -82,13 +82,15 @@ bookshop/ Why start from the app and not from RavenDB? Because our tests aren't there to check RavenDB. They check our code: what it does with the data RavenDB hands back. Running pytest in this folder runs the mocked tests, and they pass. +The complete project, including every file this guide adds, is in [this gist](https://gist.github.com/Netzach-Nyss/d297d44f24e485f2d29c4bc39136c912). A gist has no folders, so its README shows where each file goes. + Here's what we want. The same pytest command should also start a real RavenDB server, give every new test its own database on that server, and clean everything up when the run ends, on any machine with Docker. The Test Driver takes care of the databases. For the server, we'll use [Testcontainers](https://testcontainers-python.readthedocs.io/en/latest/), a library that starts Docker containers from test code and removes them afterward. Starting a container takes about 5 seconds, so we start one for the whole test run, and every test shares it. Only the databases are per test, and they're cheap: after the first one, each takes about a tenth of a second. Let's build it. ### Create a virtual environment -First, the packages need a home. You'll need Python and [Docker](https://docs.docker.com/get-started/get-docker/) running. Open a terminal in the project's folder, the one that contains `src` and `tests`. In Python, a project is just a folder with code in it, so there's nothing to create. We'll install the packages into a [virtual environment](https://docs.python.org/3/library/venv.html), a private set of packages for this project, so they don't mix with anything else on your machine: +First, the packages need a home. You'll need Python 3.11 or later and [Docker](https://docs.docker.com/get-started/get-docker/) running. Open a terminal in the project's folder, the one that contains `src` and `tests`. In Python, a project is just a folder with code in it, so there's nothing to create. We'll install the packages into a [virtual environment](https://docs.python.org/3/library/venv.html), a private set of packages for this project, so they don't mix with anything else on your machine: ```sh python -m venv .venv @@ -101,8 +103,8 @@ Then activate it. On Windows, in PowerShell, run `.venv\Scripts\Activate.ps1`. O Next, create a `requirements.txt` file in the project's folder, next to `src` and `tests`, with the four packages the suite needs. We pin exact versions, so every machine, including the CI runner later, gets the same ones: ```text -ravendb==7.2.6.post1 -ravendb-test-driver==7.2.6.post1 +ravendb==7.2.7 +ravendb-test-driver==7.2.7 testcontainers==4.15.0 pytest==8.4.2 ``` @@ -163,12 +165,12 @@ def url_of(container: DockerContainer) -> str: return f"http://{container.get_container_host_ip()}:{container.get_exposed_port(8080)}" ``` -The line that makes this container RavenDB is `DockerContainer(IMAGE)`. `ravendb/ravendb:7.2.7` is RavenDB's official image on [Docker Hub](https://hub.docker.com/r/ravendb/ravendb): a packaged RavenDB server that Docker can run on any machine. Testcontainers asks Docker to start a container from that image, and the first time, Docker downloads it. We pin the tag to the server version we run in production, here 7.2.7, which keeps runs reproducible and the server on the same 7.2 release line as the client. The `RAVENDB_IMAGE` variable lets us try a different version without touching the code. +The line that makes this container RavenDB is `DockerContainer(IMAGE)`. `ravendb/ravendb:7.2.7` is RavenDB's [official image](/7.2/start/containers/general-guide) on [Docker Hub](https://hub.docker.com/r/ravendb/ravendb): a packaged RavenDB server that Docker can run on any machine. Testcontainers asks Docker to start a container from that image, and the first time, Docker downloads it. We pin the tag to the server version we run in production, here 7.2.7, which keeps runs reproducible and the server version matched to the client. The `RAVENDB_IMAGE` variable lets us try a different version without touching the code. Each setting removes one thing that would otherwise need a human (see [image usage](https://docs.ravendb.net/start/containers/image-usage) for all the options): * `RAVEN_Setup_Mode=None` skips the setup wizard. -* `RAVEN_Security_UnsecuredAccessAllowed=PublicNetwork` lets the tests connect without certificates, whatever the Docker network looks like. It's meant for disposable test containers only. +* `RAVEN_Security_UnsecuredAccessAllowed=PublicNetwork` lets the tests connect without [certificates](/7.2/server/configuration/security-configuration), whatever the Docker network looks like. It's meant for disposable test containers only. * `RAVEN_License_Eula_Accepted=true` accepts the license agreement up front. * `RAVEN_ARGS=--RunInMemory=true` keeps all data in memory, so nothing survives the container. * `RAVEN_License`, which is optional, carries a license from the environment. @@ -181,7 +183,7 @@ Finally, `url_of` reads the URL from the container instead of hardcoding one. Te ### Connect the container to the Test Driver -Finally, the Test Driver needs to know about the container. We'll use a session-scoped [pytest fixture](https://docs.pytest.org/en/stable/how-to/fixtures.html) in `tests/conftest.py`, a file pytest loads automatically, so the fixture runs once for the whole test run. It decides where the server comes from and tells the driver about it: +Last, the Test Driver needs to know about the container. We'll use a session-scoped [pytest fixture](https://docs.pytest.org/en/stable/how-to/fixtures.html) in `tests/conftest.py`, a file pytest loads automatically, so the fixture runs once for the whole test run. It decides where the server comes from and tells the driver about it: ```py import os @@ -247,7 +249,7 @@ def stocked(store): return _seed ``` -Here's what the server looks like in the middle of a run, in RavenDB Studio: every test that asks for a store gets its own database. If you want to look around yourself, the driver can pause a test and keep its database open for you, as shown in the Python driver guide's [debugging section](./writing-unit-tests-with-ravendb-python-test-driver#6-debugging-the-database). +Here's what the server looks like in the middle of a run, in [RavenDB Studio](/7.2/studio/overview): every test that asks for a store gets its own database. If you want to look around yourself, the driver can pause a test and keep its database open for you, as shown in the Python driver guide's [debugging section](./writing-unit-tests-with-ravendb-python-test-driver#6-debugging-the-database). RavenDB Studio databases list during a test run, showing a separate test_1 and test_2 database for each test @@ -278,7 +280,7 @@ def test_order_from_last_week_can_be_returned(): assert svc.can_return("orders/1-A", NOW) ``` -There's nothing wrong with this test as a check of the logic, and it stays in the suite: mocks are fast and good at exactly that. It just can't see what the database does. So next to it, let's write the same test against the real server, in `tests/test_real.py`. The only difference is where the order lives: we store it in the test's own database, then ask the service. The repository also has its twin, for an order from two months ago that can't be returned: +There's nothing wrong with this test as a check of the logic, and it stays in the suite: mocks are fast and good at exactly that. It just can't see what the database does. So next to it, let's write the same test against the real server, in `tests/test_real.py`. The only difference is where the order lives: we store it in the test's own database, then ask the service. The full sample also has its twin, for an order from two months ago that can't be returned: ```py def test_order_from_last_week_can_be_returned(store): @@ -315,7 +317,7 @@ There's our production bug, caught before it ships. The order went into the data The text also has no time zone: the Python client writes the date without its offset, so reading it back correctly is up to the class. -The fix belongs in the `Order` class, in `src/domain.py`. When a class has a `from_json` class method, the client library calls it to build the object on load. We parse the text back into a date with [`datetime.fromisoformat`](https://docs.python.org/3/library/datetime.html#datetime.datetime.fromisoformat), and because we always store UTC, we mark it as UTC: +The fix belongs in the `Order` class, in `src/domain.py`. When a class has a `from_json` class method, the client library calls it to build the object on load. We parse the text back into a date with [`datetime.fromisoformat`](https://docs.python.org/3/library/datetime.html#datetime.datetime.fromisoformat), and because we always store UTC, we mark it as UTC. The client writes seven digits of fractional seconds, which `fromisoformat` accepts only from Python 3.11 on: ```py @classmethod @@ -348,9 +350,15 @@ The returns feature now works against the same server it will meet in production The returns bug came from one difference between our mock and RavenDB. Our bookshop's code depends on a few more of them. Each one below is a real situation in the shop where the mock gives one answer and RavenDB gives another. The tests go in `tests/test_real.py`, next to the returns tests. +| Behavior | What the mock returns | What RavenDB returns | What breaks with the mock alone | +|---|---|---|---| +| Dates | The `datetime` object the test stored | ISO 8601 text, without a time zone, unless the class parses it | Date math, like the returns check | +| Document ids | `orders/1`, `orders/2`, as we coded it | `orders/1-A`, with the tag of the node that generated it | Code that builds or parses order numbers | +| Queries right after a save | Everything it was given | Only what the indexes have caught up with | Pages that query right after a write, like order history | + ### Ids carry a node tag -The bookshop's confirmation email shows the order number, taken from the order's id. In the returns tests, we picked the id ourselves. New orders get theirs from the store instead. Our mock numbers the orders `orders/1`, `orders/2`, and so on, because that's what we coded. RavenDB gives the first one `orders/1-A`: the suffix is the tag of the cluster node that [generated the id](https://docs.ravendb.net/server/kb/document-identifier-generation). Code that strips `orders/` and turns the rest into a number works with the mock and breaks with the real thing. Let's pin down the real shape of the id: +The bookshop's confirmation email shows the order number, taken from the order's id. In the returns tests, we picked the id ourselves. New orders get theirs from the store instead. Our mock numbers the orders `orders/1`, `orders/2`, and so on, because that's what we coded. RavenDB gives the first one `orders/1-A`: the suffix is the [tag of the cluster node](/7.2/glossary/node-tag) that [generated the id](https://docs.ravendb.net/server/kb/document-identifier-generation). Code that strips `orders/` and turns the rest into a number works with the mock and breaks with the real thing. Let's pin down the real shape of the id: ```py def test_server_appends_a_node_tag_to_the_id(stocked): @@ -365,7 +373,7 @@ On a real server, the first order gets `orders/1-A`, and the test passes. Any co ### Indexing is asynchronous -Right after checkout, customers open their order history. The history page runs a query, and in RavenDB, queries read from indexes that are updated in the background, after a save completes. So a query right after a save can miss the order that was just placed. The docs explain why in [stale indexes](https://docs.ravendb.net/indexes/stale-indexes). Our mock's query returns whatever list we gave it, so it never misses anything. +Right after checkout, customers open their order history. The history page runs a query, and in RavenDB, queries read from [indexes](/7.2/indexes/what-are-indexes) that are updated in the background, after a save completes. So a query right after a save can miss the order that was just placed. The docs explain why in [stale indexes](https://docs.ravendb.net/indexes/stale-indexes). Our mock's query returns whatever list we gave it, so it never misses anything. To make the effect easy to see, the test saves 200 orders for one customer at once, as a busy customer during a sale might, then queries that customer's history. There's one trap in testing this. A query that creates a new index waits until the index is built, so on a fresh database, everything looks consistent. That's why the test warms the index first, then saves the 200 orders and queries immediately. @@ -408,7 +416,7 @@ immediately after saving: 0 of 200 After `wait_for_indexing`, all 200 are there, and the test passes. -`wait_for_indexing` is the right tool for a test, but the checkout code needs its own answer, so the customer sees their order. RavenDB's documented fix is `wait_for_indexes_after_save_changes`: the save itself waits until the indexes have caught up, so a query right after it sees everything. Let's commit a test of that pattern too: +`wait_for_indexing` is the right tool for a test, but the checkout code needs its own answer, so the customer sees their order. RavenDB's [documented fix](/7.2/client-api/session/saving-changes) is `wait_for_indexes_after_save_changes`: the save itself waits until the indexes have caught up, so a query right after it sees everything. Let's commit a test of that pattern too: ```py def test_wait_for_indexes_after_save_changes(store):