Skip to content
Snippets Groups Projects
Commit 10bf21ea authored by Maciej Pawel Szymanski's avatar Maciej Pawel Szymanski
Browse files

add tests

parent 3960a38d
No related branches found
No related tags found
1 merge request!9add functions updating build status in db
Pipeline #2268044 passed
......@@ -480,3 +480,180 @@ def test_set_dependencies():
db["nightly:some-slot:1"]["config"]["projects"][0]["dependencies"]
== slot.Gaudi.dependencies.return_value
)
@patch(
"datetime.datetime",
**{"now.return_value": datetime.datetime(2021, 1, 28, 1, 2, 3)},
)
@patch("lb.nightly.db.database.gethostname", return_value="example.org")
def test_build_start(gethostname, datetimeMock):
slot = Slot(
"some-slot",
build_id=1,
projects=[Project("Gaudi", "master")],
platforms=["x86_64-centos7-gcc9-opt"],
)
class DocMock(dict):
pass
doc = DocMock(build={})
doc.save = Mock()
db = Database(MockDBData({"nightly:some-slot:1": doc}))
db.build_start(slot.Gaudi, slot.platforms[0])
assert "build" in db["nightly:some-slot:1"]
assert "x86_64-centos7-gcc9-opt" in db["nightly:some-slot:1"]["build"]
assert "Gaudi" in db["nightly:some-slot:1"]["build"][slot.platforms[0]]
proj = db["nightly:some-slot:1"]["build"]["x86_64-centos7-gcc9-opt"]["Gaudi"]
assert proj == {
"started": str(datetimeMock.now()),
"hostname": gethostname(),
}
doc.save.assert_called_once()
@patch(
"datetime.datetime",
**{"now.return_value": datetime.datetime(2021, 1, 28, 1, 2, 3)},
)
@patch("lb.nightly.db.database.gethostname", return_value="example.org")
def test_build_start_empty(gethostname, datetimeMock):
slot = Slot(
"some-slot",
build_id=1,
projects=[Project("Gaudi", "master")],
platforms=["x86_64-centos7-gcc9-opt"],
)
class DocMock(dict):
pass
doc = DocMock()
doc.save = Mock()
db = Database(MockDBData({"nightly:some-slot:1": doc}))
db.build_start(slot.Gaudi, slot.platforms[0])
assert "build" in db["nightly:some-slot:1"]
assert "x86_64-centos7-gcc9-opt" in db["nightly:some-slot:1"]["build"]
assert "Gaudi" in db["nightly:some-slot:1"]["build"]["x86_64-centos7-gcc9-opt"]
proj = db["nightly:some-slot:1"]["build"]["x86_64-centos7-gcc9-opt"]["Gaudi"]
assert proj == {
"started": str(datetimeMock.now()),
"hostname": gethostname(),
}
doc.save.assert_called_once()
@patch(
"datetime.datetime",
**{"now.return_value": datetime.datetime(2020, 3, 27, 1, 2, 3)},
)
@patch("lb.nightly.db.database.gethostname", return_value="example.org")
def test_build_start_previous(gethostname, datetimeMock):
slot = Slot(
"some-slot",
build_id=1,
projects=[Project("Gaudi", "master")],
platforms=["x86_64-centos7-gcc9-opt"],
)
class DocMock(dict):
pass
doc = DocMock(
build={slot.platforms[0]: {"Gaudi": {"data": "some previous build data"}}}
)
doc.save = Mock()
db = Database(MockDBData({"nightly:some-slot:1": doc}))
db.build_start(slot.Gaudi, slot.platforms[0])
assert "build" in db["nightly:some-slot:1"]
assert "x86_64-centos7-gcc9-opt" in db["nightly:some-slot:1"]["build"]
assert "Gaudi" in db["nightly:some-slot:1"]["build"]["x86_64-centos7-gcc9-opt"]
proj = db["nightly:some-slot:1"]["build"]["x86_64-centos7-gcc9-opt"]["Gaudi"]
assert proj == {
"started": str(datetimeMock.now()),
"hostname": gethostname(),
"previous": {"data": "some previous build data"},
}
doc.save.assert_called_once()
# multiple previous builds
db.build_start(slot.Gaudi, slot.platforms[0])
proj = db["nightly:some-slot:1"]["build"]["x86_64-centos7-gcc9-opt"]["Gaudi"]
assert proj == {
"started": str(datetimeMock.now()),
"hostname": gethostname(),
"previous": {
"started": str(datetimeMock.now()),
"hostname": gethostname(),
"previous": {"data": "some previous build data"},
},
}
@patch(
"datetime.datetime",
**{"now.return_value": datetime.datetime(2020, 3, 27, 1, 2, 10)},
)
@patch("lb.nightly.db.database.gethostname", return_value="example.org")
def test_build_complete(gethostname, datetimeMock):
slot = Slot(
"some-slot",
build_id=1,
projects=[Project("Gaudi", "master")],
platforms=["x86_64-centos7-gcc9-opt"],
)
start_time = str(datetime.datetime(2020, 3, 27, 1, 2, 0))
class DocMock(dict):
pass
doc = DocMock(
build={
"x86_64-centos7-gcc9-opt": {
"Gaudi": {
"started": start_time,
"hostname": gethostname(),
}
}
}
)
doc.save = Mock()
db = Database(MockDBData({"nightly:some-slot:1": doc}))
reports = {"configure": Mock(), "build": Mock()}
reports["configure"].records = [{"level": "warning", "text": "a warning message"}]
reports["build"].records = [{"level": "error", "text": "an error message"}]
db.build_complete(slot.Gaudi, slot.platforms[0], reports)
assert "build" in db["nightly:some-slot:1"]
assert "x86_64-centos7-gcc9-opt" in db["nightly:some-slot:1"]["build"]
assert "Gaudi" in db["nightly:some-slot:1"]["build"]["x86_64-centos7-gcc9-opt"]
proj = db["nightly:some-slot:1"]["build"]["x86_64-centos7-gcc9-opt"]["Gaudi"]
assert proj == {
"started": start_time,
"hostname": gethostname(),
"completed": str(datetime.datetime.now()),
"warnings": {"configure": ["a warning message"], "build": []},
"errors": {"configure": [], "build": ["an error message"]},
"artifact": slot.Gaudi.artifacts("build", slot.platforms[0]),
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment