- Oct 12, 2022
-
-
Yaroslav Dynnikov authored
It also provides better experience with various IDEs.
-
- Oct 06, 2022
-
-
Yaroslav Dynnikov authored
Also remove the unnecessary `start_new_session` flag from explel function.
-
- Sep 29, 2022
-
-
Valentin Syrovatskiy authored
-
- Aug 18, 2022
-
-
Valentin Syrovatskiy authored
-
- Aug 17, 2022
-
-
Georgy Moshkin authored
-
- Aug 16, 2022
-
-
- Aug 11, 2022
-
-
Georgy Moshkin authored
-
- Aug 10, 2022
-
-
Some users may change their "target-dir" cargo setting for example to make it shared between all projects (may speed up some builds). It that case our integration tests should be looking for the executable in the right place.
-
- Jul 27, 2022
-
-
Valentin Syrovatskiy authored
-
Valentin Syrovatskiy authored
-
Valentin Syrovatskiy authored
-
- Jul 18, 2022
-
-
Georgy Moshkin authored
-
Georgy Moshkin authored
-
- Jul 14, 2022
-
-
- Jul 08, 2022
-
-
Georgy Moshkin authored
-
This patch introduces a new type of tests - manual. They aren't run by default. You can use it for development experiments: ```bash pytest test/manual -s -k instant pytest test/manual -s -k chunked ```
-
- Jul 07, 2022
-
-
Georgy Moshkin authored
-
Valentin Syrovatskiy authored
-
- Jul 06, 2022
-
-
Georgy Moshkin authored
-
- Jul 05, 2022
-
-
Georgy Moshkin authored
-
Valentin Syrovatskiy authored
-
- Jun 30, 2022
-
-
Yaroslav Dynnikov authored
-
- Jun 27, 2022
-
-
Valentin Syrovatskiy authored
-
- Jun 06, 2022
-
-
- Jun 03, 2022
-
-
- Jun 01, 2022
-
-
Yaroslav Dynnikov authored
Restarting both instances doesn't work yet, to be fixed later. Close https://git.picodata.io/picodata/picodata/picodata/-/issues/90
-
Yaroslav Dynnikov authored
Since commit d87dd4ca `leader_id` became an `Option`, so the `None` value isn't rendered in the `picolib.raft_status` response: ```python status={'is_ready': False, 'raft_state': 'Follower', 'id': 1} ``` It makes pytest complain about missing argument: ``` cluster2 = Cluster("127.0.0.1:3300", n=2) def test_restart_leader(cluster2: Cluster): i1, i2 = cluster2.instances i1.assert_raft_status('Leader') i2.assert_raft_status('Follower') i1.restart() > i1.wait_ready() test/int/test_joining.py:209: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../.local/share/virtualenvs/picodata-6sv6l6y-/lib/python3.10/site-packages/funcy/decorators.py:45: in wrapper return deco(call, *dargs, **dkwargs) ../../.local/share/virtualenvs/picodata-6sv6l6y-/lib/python3.10/site-packages/funcy/flow.py:127: in retry return call() ../../.local/share/virtualenvs/picodata-6sv6l6y-/lib/python3.10/site-packages/funcy/decorators.py:66: in __call__ return self._func(*self._args, **self._kwargs) test/int/conftest.py:305: in wait_ready status = self._raft_status() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = Instance(i1, listen=127.0.0.1:3301) def _raft_status(self) -> RaftStatus: status = self.call("picolib.raft_status") assert isinstance(status, dict) eprint(f"{status=}") > return RaftStatus(**status) E TypeError: RaftStatus.__init__() missing 1 required positional argument: 'leader_id' test/int/conftest.py:280: TypeError ``` This patch fixes the failure message: ``` self = Instance(i1, listen=127.0.0.1:3301) @funcy.retry(tries=20, timeout=0.1) def wait_ready(self): status = self._raft_status() > assert status.is_ready E AssertionError: assert False E + where False = RaftStatus(id=1, raft_state='Follower', is_ready=False, leader_id=None).is_ready test/int/conftest.py:306: AssertionError ```
-
Sergey V authored
* Make `--cluster-id` CLI mandatory. * Handle cluster_id mismatch in raft_join. When an instance attempts to join the cluster and the instances's `--instance-id` parameter mismatches the cluster_id of the cluster an error is raised inside the raft_join handler.
-
Sergey V authored
-
- May 31, 2022
-
-
Sergey V authored
-
- May 30, 2022
-
-
Yaroslav Dynnikov authored
-
Yaroslav Dynnikov authored
-
- May 25, 2022
-
-
Sergey V authored
-
- May 24, 2022
-
-
Yaroslav Dynnikov authored
-
Yaroslav Dynnikov authored
The intention is to eliminate ambiguities in the `Instance` API. Make it more like `subprocess` module (as regards `kill` and `terminate` functions).
-
- May 23, 2022
-
-
Yaroslav Dynnikov authored
Pytest supports running tests in parallel using the `xdist` plugin. In order to support it in Picodata, one should avoid ports collision. It assigns each worker a dedicated IP address `127.7.n.1`, where `n = xdist_worker_number`. Unfortunately, it doesn't work on MacOS, because Mac doesn't provide any loopback aliases except `127.0.0.1` by default. This patch provides another address generation logics. The `subnet` parameter is superseeded with a `base_port`, that is `3300 + n * 100`. In this way, every pytest (xdist) worker gets a dedicated port range `[3301, 3399]`, `[3401, 3499]` and so on. Close https://git.picodata.io/picodata/picodata/picodata/-/issues/65
-
- May 17, 2022
-
-
Yaroslav Dynnikov authored
Before this patch, pytest used to launch all instances in a clean environment. It prevented running with `PICODATA_LOG_LEVEL=verbose`.
-
This patch covers one more case when discovery request is handled by an instance that has the discovery module unitialized.
-
- May 13, 2022
-
-
- May 12, 2022
-
-
Yaroslav Dynnikov authored
Commit 1a3b5233 missed a bug. Iteration over instances could be aborted by an exception during teardown. It resulted in garbage process remaining alive after pytest termination.
-