diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..043f1a8 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,46 @@ +name: Test + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + workflow_dispatch: + +permissions: + contents: read + +jobs: + test: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: [ '3.12' ] + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - uses: dtolnay/rust-toolchain@stable + + - name: Set up venv and install dependencies + run: | + python -m venv .venv + . .venv/bin/activate + python -m pip install --upgrade pip + pip install -r requirements-dev.txt + pip install maturin + + - name: Build and install package + run: | + . .venv/bin/activate + maturin develop --quiet + + - name: Run tests + run: | + . .venv/bin/activate + pytest -q + + diff --git a/src/awareness.rs b/src/awareness.rs index 9ef337a..49259e0 100644 --- a/src/awareness.rs +++ b/src/awareness.rs @@ -25,12 +25,12 @@ impl Awareness { Self(loro::awareness::Awareness::new(peer, timeout)) } - pub fn encode(&self, peers: Vec) -> Cow<[u8]> { + pub fn encode(&self, peers: Vec) -> Cow<'_, [u8]> { let ans: Vec = self.0.encode(&peers); Cow::Owned(ans) } - pub fn encode_all(&self) -> Cow<[u8]> { + pub fn encode_all(&self) -> Cow<'_, [u8]> { let ans: Vec = self.0.encode_all(); Cow::Owned(ans) } diff --git a/src/convert.rs b/src/convert.rs index 6727eb5..a9c8912 100644 --- a/src/convert.rs +++ b/src/convert.rs @@ -125,7 +125,7 @@ pub fn pyobject_to_loro_value(obj: &Bound<'_, PyAny>) -> PyResult PyResult> { +pub fn loro_value_to_pyobject(py: Python<'_>, value: LoroValue) -> PyResult> { match value.0 { loro::LoroValue::Null => Ok(py.None().into_pyobject(py)?.into_any().into_bound()), loro::LoroValue::Bool(b) => Ok(PyBool::new(py, b) diff --git a/src/doc.rs b/src/doc.rs index 89121ca..4131ce6 100644 --- a/src/doc.rs +++ b/src/doc.rs @@ -802,7 +802,7 @@ impl LoroDoc { } /// Export the document in the given mode. - pub fn export(&self, mode: ExportMode) -> PyLoroResult> { + pub fn export(&self, mode: ExportMode) -> PyLoroResult> { let ans = self.doc.export(mode.into())?; Ok(Cow::Owned(ans)) } diff --git a/src/version.rs b/src/version.rs index a439e80..fab836d 100644 --- a/src/version.rs +++ b/src/version.rs @@ -48,7 +48,7 @@ impl Frontiers { )) } - pub fn encode(&self) -> Cow<[u8]> { + pub fn encode(&self) -> Cow<'_, [u8]> { let ans: Vec = self.0.encode(); Cow::Owned(ans) } @@ -311,7 +311,7 @@ impl VersionVector { } #[inline(always)] - pub fn encode(&self) -> Cow<[u8]> { + pub fn encode(&self) -> Cow<'_, [u8]> { let ans: Vec = self.0.encode(); Cow::Owned(ans) } diff --git a/tests/test_basic.py b/tests/test_basic.py index ae20db0..bab4880 100644 --- a/tests/test_basic.py +++ b/tests/test_basic.py @@ -1,7 +1,4 @@ -from loro import LoroDoc, ExportMode, VersionVector, LORO_VERSION - -def test_version(): - assert LORO_VERSION == "1.4.2" +from loro import LoroDoc, ExportMode, VersionVector def test_basic(): doc = LoroDoc()