|
| 1 | +import shutil |
| 2 | +import tempfile |
| 3 | +from pathlib import Path |
| 4 | +from unittest import TestCase |
| 5 | + |
| 6 | +from ravendb_embedded.embedded_server import EmbeddedServer |
| 7 | +from ravendb_embedded.options import ServerOptions, DatabaseOptions |
| 8 | +from ravendb_embedded.provide import CopyServerFromNugetProvider |
| 9 | +from tests import Person |
| 10 | + |
| 11 | + |
| 12 | +class BasicTest(TestCase): |
| 13 | + def test_embedded(self): |
| 14 | + temp_dir = tempfile.mkdtemp() |
| 15 | + try: |
| 16 | + with EmbeddedServer() as embedded: |
| 17 | + server_options = ServerOptions() |
| 18 | + server_options.target_server_location = str(Path(temp_dir, "RavenDBServer")) |
| 19 | + server_options.data_directory = str(Path(temp_dir, "RavenDB")) |
| 20 | + server_options.logs_path = str(Path(temp_dir, "Logs")) |
| 21 | + server_options.provider = CopyServerFromNugetProvider() |
| 22 | + server_options.command_line_args = ["--Features.Availability=Experimental"] |
| 23 | + embedded.start_server(server_options) |
| 24 | + |
| 25 | + database_options = DatabaseOptions.from_database_name("Test") |
| 26 | + database_options.conventions.save_enums_as_integers = True |
| 27 | + |
| 28 | + with embedded.get_document_store_from_options(database_options) as store: |
| 29 | + self.assertTrue(store.conventions.save_enums_as_integers) |
| 30 | + self.assertTrue(store.get_request_executor().conventions.save_enums_as_integers) |
| 31 | + |
| 32 | + with store.open_session() as session: |
| 33 | + person = Person() |
| 34 | + person.name = "John" |
| 35 | + |
| 36 | + session.store(person, "people/1") |
| 37 | + session.save_changes() |
| 38 | + |
| 39 | + with EmbeddedServer() as embedded: |
| 40 | + server_options = ServerOptions() |
| 41 | + server_options.target_server_location = str(Path(temp_dir, "RavenDBServer")) |
| 42 | + server_options.data_directory = str(Path(temp_dir, "RavenDB")) |
| 43 | + server_options.provider = CopyServerFromNugetProvider() |
| 44 | + embedded.start_server(server_options) |
| 45 | + |
| 46 | + with embedded.get_document_store("Test") as store: |
| 47 | + self.assertFalse(store.conventions.save_enums_as_integers) |
| 48 | + self.assertFalse(store.get_request_executor().conventions.save_enums_as_integers) |
| 49 | + |
| 50 | + with store.open_session() as session: |
| 51 | + person = session.load("people/1", Person) |
| 52 | + |
| 53 | + self.assertIsNotNone(person) |
| 54 | + self.assertEqual(person.name, "John") |
| 55 | + |
| 56 | + finally: |
| 57 | + shutil.rmtree(temp_dir) |
0 commit comments