File: test_eval.py

package info (click to toggle)
nanobind 2.10.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,100 kB
  • sloc: cpp: 12,131; python: 6,190; ansic: 4,785; makefile: 22; sh: 15
file content (44 lines) | stat: -rw-r--r-- 893 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import os

import pytest

import test_eval_ext as m


def test_evals(capsys):
    assert m.test_eval_statements()
    captured = capsys.readouterr()
    assert captured.out == "Hello World!\n"

    assert m.test_eval()
    assert m.test_eval_single_statement()

    assert m.test_eval_failure()


def test_eval_closure():
    global_, local = m.test_eval_closure()

    assert global_["closure_value"] == 42
    assert local["closure_value"] == 0

    assert "local_value" not in global_
    assert local["local_value"] == 0

    assert "func_global" not in global_
    assert local["func_global"]() == 42

    assert "func_local" not in global_
    with pytest.raises(NameError):
        local["func_local"]()

a = 1

def test_read_globals():
    assert m.globals_contains_a()


def test_write_globals():
    assert "b" not in globals()
    m.globals_add_b()
    assert globals()["b"] == 123