mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-27 18:57:17 +00:00
Unassigning the last unit now cleans up empty unit assignments
This commit is contained in:
@@ -14,4 +14,5 @@ class Usecase:
|
|||||||
units = units - set(self.settings["units"])
|
units = units - set(self.settings["units"])
|
||||||
if units:
|
if units:
|
||||||
unit_assignment.Units = list(units)
|
unit_assignment.Units = list(units)
|
||||||
return unit_assignment
|
return unit_assignment
|
||||||
|
self.file.remove(unit_assignment)
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
import test.bootstrap
|
||||||
|
import ifcopenshell.api
|
||||||
|
|
||||||
|
|
||||||
|
class TestUnassignUnit(test.bootstrap.IFC4):
|
||||||
|
def test_run(self):
|
||||||
|
project = self.file.createIfcProject()
|
||||||
|
unit1 = ifcopenshell.api.run("unit.add_monetary_unit", self.file, currency="FOO")
|
||||||
|
unit2 = ifcopenshell.api.run("unit.add_monetary_unit", self.file, currency="BAR")
|
||||||
|
assignment = ifcopenshell.api.run("unit.assign_unit", self.file, units=[unit1, unit2])
|
||||||
|
ifcopenshell.api.run("unit.unassign_unit", self.file, units=[unit1])
|
||||||
|
assert unit1 not in assignment.Units
|
||||||
|
assert unit2 in assignment.Units
|
||||||
|
|
||||||
|
def test_unassigning_the_last_unit(self):
|
||||||
|
project = self.file.createIfcProject()
|
||||||
|
unit = ifcopenshell.api.run("unit.add_monetary_unit", self.file, currency="FOO")
|
||||||
|
ifcopenshell.api.run("unit.assign_unit", self.file, units=[unit])
|
||||||
|
ifcopenshell.api.run("unit.unassign_unit", self.file, units=[unit])
|
||||||
|
assert project.UnitsInContext is None
|
||||||
|
|
||||||
|
def test_doing_nothing_if_the_unit_is_not_assigned(self):
|
||||||
|
unit = ifcopenshell.api.run("unit.add_monetary_unit", self.file, currency="FOO")
|
||||||
|
assert ifcopenshell.api.run("unit.unassign_unit", self.file, units=[unit]) is None
|
||||||
Reference in New Issue
Block a user