14
14
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
15
15
# License for the specific language governing permissions and limitations
16
16
# under the License.
17
18
from melange.db.sqlalchemy import api as db_api
18
19
from melange.db.sqlalchemy import session
19
from melange.ipam.models import IpBlock
20
from melange.tests import BaseTest
21
from melange.tests import unit
22
from melange.tests.factories.models import IpBlockFactory
25
class TestSqlalchemyApi(BaseTest):
20
from melange.ipam import models
21
from melange import tests
22
from melange.tests import factories
25
class TestSqlalchemyApi(tests.BaseTest):
27
27
def test_delete_does_soft_deletion(self):
28
model = IpBlockFactory()
28
model = factories.models.IpBlockFactory()
30
30
db_api.delete(model)
32
deleted_model = session.raw_query(IpBlock).get(model.id)
32
deleted_model = session.raw_query(models.IpBlock).get(model.id)
33
33
self.assertIsNotNone(deleted_model)
34
34
self.assertTrue(deleted_model.deleted)
36
36
def test_delete_all_does_soft_deletion(self):
37
model1 = IpBlockFactory()
38
model2 = IpBlockFactory()
37
model1 = factories.models.IpBlockFactory()
38
model2 = factories.models.IpBlockFactory()
40
db_api.delete_all(IpBlock)
40
db_api.delete_all(models.IpBlock)
42
42
for model in [model1, model2]:
43
deleted_model = session.raw_query(IpBlock).get(model.id)
43
deleted_model = session.raw_query(models.IpBlock).get(model.id)
44
44
self.assertIsNotNone(deleted_model)
45
45
self.assertTrue(deleted_model.deleted)