Skip to content
Snippets Groups Projects
Commit 92d165bd authored by Henrik Thostrup Jensen's avatar Henrik Thostrup Jensen
Browse files

add database check for start time < end time, and add test case for it

parent b114ab03
Branches
No related tags found
No related merge requests found
......@@ -46,7 +46,8 @@ CREATE TABLE service_connections (
bandwidth integer NOT NULL, -- mbps
parameter parameter[],
security_attributes security_attribute[],
connection_trace text[]
connection_trace text[],
CHECK ( start_time < end_time)
);
-- internal references to connections that are part of a service connection
......@@ -98,7 +99,8 @@ CREATE TABLE generic_backend_connections (
directionality directionality NOT NULL,
bandwidth integer NOT NULL, -- mbps
parameter parameter[],
allocated boolean NOT NULL -- indicated if the resources are actually allocated
allocated boolean NOT NULL, -- indicated if the resources are actually allocated
CHECK ( start_time < end_time)
);
......
import datetime
import psycopg2
from twisted.internet import defer
from twisted.trial import unittest
from opennsa import state
from opennsa.backends.common import genericbackend
from . import db
class DatabaseTest(unittest.TestCase):
def setUp(self):
db.setupDatabase()
@defer.inlineCallbacks
def testReverseStartEndTimeConstraint(self):
now = datetime.datetime.utcnow()
start_time = now - datetime.timedelta(seconds=10)
end_time = now - datetime.timedelta(seconds=1000)
conn = genericbackend.GenericBackendConnections(
connection_id='conn-123',
revision=0,
global_reservation_id='gid-123',
description='test',
requester_nsa='req-nsa',
reserve_time=now,
reservation_state=state.RESERVE_START,
provision_state=state.RELEASED,
lifecycle_state=state.CREATED,
data_plane_active=False,
source_network='src-net', source_port='src-port', source_label=None,
dest_network='dst-net', dest_port='dst-port', dest_label=None,
start_time=start_time, end_time=end_time,
symmetrical=False, directionality='Bidirectional', bandwidth=200,
allocated=False
)
try:
yield conn.save()
self.fail('Should have gotten integrity error from database')
except psycopg2.IntegrityError as e:
pass # intended
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment