PyTest: Patch eine globale VariablePython

Python-Programme
Anonymous
 PyTest: Patch eine globale Variable

Post by Anonymous »

Wie können Sie eine Variable mit Mock oder PyTest-Mock pflücken? Angenommen, die Variable ist in einem anderen Python -Skript definiert und von vielen anderen Skripten verwendet. Ich möchte es innerhalb von pyTest_cmdline_main verspotten, damit alle Skripte, die diese Variable verwenden, entsprechend verspottet werden.

Code: Select all

VAR = "something"
< / Code>
 in Constest.py < / h1>
import os
import sys
from unittest.mock import patch

TEST_DIR = os.path.dirname(os.path.realpath(__file__))

class MockThings():
def __init__(self):
self.setup()

def setup(self):
mock_var = patch('env.VAR').start()
mock_var.return_value = "updated"

def pytest_cmdline_main(config):
sys.path.append(TEST_DIR)
MockThings()
< /code>
 In test_Something.py < /h1>
from env import VAR

def test_sample():
print(VAR)
# do something else here
assert False

def test_sample2():
print(VAR)
# do something else here
assert False
Wenn Sie PyTest -v
Ausführen des Tests wie erwartet fehlschlagen, aber unter dem Stdout heißt es:
dann ist der druck out korrekt (

Code: Select all

updated
).
Wie verspottete ich diese Variable und behandle sie nicht als Funktion? Ich weiß>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post