def setUp(self): """Setup a single active mission to test live kml with.""" super(TestGenerateLiveKMLNoFixture, self).setUp() pos = GpsPosition() pos.latitude = 10 pos.longitude = 10 pos.save() info = ServerInfo() info.timestamp = timezone.now() info.message = "Hello World" info.save() config = MissionConfig() config.is_active = True config.home_pos = pos config.emergent_last_known_pos = pos config.off_axis_target_pos = pos config.sric_pos = pos config.ir_primary_target_pos = pos config.ir_secondary_target_pos = pos config.air_drop_pos = pos config.server_info = info config.save() self.config = config
def setUp(self): self.user = User.objects.create_user("testuser", "*****@*****.**", "testpass") self.user.save() # Create an active mission. pos = GpsPosition() pos.latitude = 10 pos.longitude = 10 pos.save() info = ServerInfo() info.timestamp = datetime.datetime.now() info.message = "Hello World" info.save() config = MissionConfig() config.is_active = True config.home_pos = pos config.emergent_last_known_pos = pos config.off_axis_target_pos = pos config.sric_pos = pos config.air_drop_pos = pos config.server_info = info config.save() # Add a couple of stationary obstacles obst = self.create_stationary_obstacle(lat=38.142233, lon=-76.434082, radius=300, height=500) config.stationary_obstacles.add(obst) obst = self.create_stationary_obstacle(lat=38.442233, lon=-76.834082, radius=100, height=750) config.stationary_obstacles.add(obst) # And a couple of moving obstacles obst = self.create_moving_obstacle( [ # (lat, lon, alt) (38.142233, -76.434082, 300), (38.141878, -76.425198, 700), ] ) config.moving_obstacles.add(obst) obst = self.create_moving_obstacle( [ # (lat, lon, alt) (38.145405, -76.428310, 100), (38.146582, -76.424099, 200), (38.144662, -76.427634, 300), (38.147729, -76.419185, 200), (38.147573, -76.420832, 100), (38.148522, -76.419507, 750), ] ) config.moving_obstacles.add(obst) config.save() # Login response = self.client.post(login_url, {"username": "******", "password": "******"}) self.assertEqual(200, response.status_code)
def setUp(self): """Sets up the client, server info URL, and user.""" self.user = User.objects.create_user('testuser', '*****@*****.**', 'testpass') self.user.save() self.info = ServerInfo() self.info.team_msg = 'test message' self.info.save() self.client = Client() self.loginUrl = reverse('auvsi_suas:login') self.infoUrl = reverse('auvsi_suas:server_info')
def test_toJSON(self): """Tests the JSON serialization method.""" TEST_MSG = 'Hello, world.' TEST_TIME = datetime.datetime.now() server_info = ServerInfo() server_info.timestamp = TEST_TIME server_info.team_msg = TEST_MSG json_data = server_info.toJSON() self.assertTrue('message' in json_data) self.assertEqual(json_data['message'], TEST_MSG) self.assertTrue('message_timestamp' in json_data) self.assertEqual(json_data['message_timestamp'], str(TEST_TIME))
def setUp(self): """Sets up the client, server info URL, and user.""" cache.clear() self.user = User.objects.create_user('testuser', '*****@*****.**', 'testpass') self.user.save() response = self.client.post(login_url, { 'username': '******', 'password': '******', }) self.assertEqual(200, response.status_code) self.info = ServerInfo() self.info.team_msg = 'test message' self.info.save() gpos = GpsPosition(latitude=0, longitude=0) gpos.save() self.mission = MissionConfig() self.mission.is_active = True self.mission.home_pos = gpos self.mission.emergent_last_known_pos = gpos self.mission.off_axis_target_pos = gpos self.mission.sric_pos = gpos self.mission.air_drop_pos = gpos self.mission.server_info = self.info self.mission.save()
def setUp(self): """Sets up the client, server info URL, and user.""" self.user = User.objects.create_user( 'testuser', '*****@*****.**', 'testpass') self.user.save() self.info = ServerInfo() self.info.team_msg = 'test message' self.info.save() self.client = Client() self.loginUrl = reverse('auvsi_suas:login') self.infoUrl = reverse('auvsi_suas:server_info')
def setUp(self): """Populates an active mission to test a cached view.""" pos = GpsPosition() pos.latitude = 10 pos.longitude = 10 pos.save() self.pos = pos info = ServerInfo() info.timestamp = datetime.datetime.now() info.message = "Hello World" info.save() obst = StationaryObstacle() obst.gps_position = pos obst.cylinder_radius = 10 obst.cylinder_height = 10 obst.save() self.obst = obst config = MissionConfig() config.is_active = True config.home_pos = pos config.emergent_last_known_pos = pos config.off_axis_target_pos = pos config.sric_pos = pos config.ir_primary_target_pos = pos config.ir_secondary_target_pos = pos config.air_drop_pos = pos config.server_info = info config.save() self.config = config config.stationary_obstacles.add(obst) config.save() self.login_url = reverse('auvsi_suas:login') self.obst_url = reverse('auvsi_suas:obstacles') self.clear_cache_url = reverse('auvsi_suas:clear_cache')
def create_config(self): """Creates a dummy config for testing.""" pos = GpsPosition() pos.latitude = 10 pos.longitude = 10 pos.save() info = ServerInfo() info.timestamp = datetime.datetime.now() info.message = "Hello World" info.save() config = MissionConfig() config.is_active = False config.home_pos = pos config.emergent_last_known_pos = pos config.off_axis_target_pos = pos config.sric_pos = pos config.air_drop_pos = pos config.server_info = info return config
def setUp(self): """Setup a single active mission to test live kml with.""" super(TestGenerateLiveKMLNoFixture, self).setUp() pos = GpsPosition() pos.latitude = 10 pos.longitude = 10 pos.save() info = ServerInfo() info.timestamp = timezone.now() info.message = "Hello World" info.save() config = MissionConfig() config.is_active = True config.home_pos = pos config.emergent_last_known_pos = pos config.off_axis_target_pos = pos config.sric_pos = pos config.air_drop_pos = pos config.server_info = info config.save() self.config = config
def setUp(self): """Populates an active mission to test a cached view.""" pos = GpsPosition() pos.latitude = 10 pos.longitude = 10 pos.save() self.pos = pos info = ServerInfo() info.timestamp = datetime.datetime.now() info.message = "Hello World" info.save() obst = StationaryObstacle() obst.gps_position = pos obst.cylinder_radius = 10 obst.cylinder_height = 10 obst.save() self.obst = obst config = MissionConfig() config.is_active = True config.home_pos = pos config.emergent_last_known_pos = pos config.off_axis_target_pos = pos config.sric_pos = pos config.air_drop_pos = pos config.server_info = info config.save() self.config = config config.stationary_obstacles.add(obst) config.save() self.login_url = reverse('auvsi_suas:login') self.obst_url = reverse('auvsi_suas:obstacles') self.clear_cache_url = reverse('auvsi_suas:clear_cache')
def setUp(self): self.user = User.objects.create_user('testuser', '*****@*****.**', 'testpass') self.user.save() # Create an active mission. pos = GpsPosition() pos.latitude = 10 pos.longitude = 10 pos.save() info = ServerInfo() info.timestamp = datetime.datetime.now() info.message = "Hello World" info.save() config = MissionConfig() config.is_active = True config.home_pos = pos config.emergent_last_known_pos = pos config.off_axis_target_pos = pos config.sric_pos = pos config.air_drop_pos = pos config.server_info = info config.save() # Add a couple of stationary obstacles obst = self.create_stationary_obstacle(lat=38.142233, lon=-76.434082, radius=300, height=500) config.stationary_obstacles.add(obst) obst = self.create_stationary_obstacle(lat=38.442233, lon=-76.834082, radius=100, height=750) config.stationary_obstacles.add(obst) # And a couple of moving obstacles obst = self.create_moving_obstacle([ # (lat, lon, alt) (38.142233, -76.434082, 300), (38.141878, -76.425198, 700), ]) config.moving_obstacles.add(obst) obst = self.create_moving_obstacle([ # (lat, lon, alt) (38.145405, -76.428310, 100), (38.146582, -76.424099, 200), (38.144662, -76.427634, 300), (38.147729, -76.419185, 200), (38.147573, -76.420832, 100), (38.148522, -76.419507, 750), ]) config.moving_obstacles.add(obst) config.save() # Login response = self.client.post(login_url, { 'username': '******', 'password': '******' }) self.assertEqual(200, response.status_code)
def setUp(self): info = ServerInfo() info.timestamp = datetime.datetime.now() info.message = "Hello World" info.save() self.info = info
class TestGetServerInfoView(TestCase): """Tests the getServerInfo view.""" def setUp(self): """Sets up the client, server info URL, and user.""" self.user = User.objects.create_user( 'testuser', '*****@*****.**', 'testpass') self.user.save() self.info = ServerInfo() self.info.team_msg = 'test message' self.info.save() self.client = Client() self.loginUrl = reverse('auvsi_suas:login') self.infoUrl = reverse('auvsi_suas:server_info') def tearDown(self): """Destroys the user.""" self.user.delete() ServerInfo.objects.all().delete() ServerInfoAccessLog.objects.all().delete() def test_not_authenticated(self): """Tests requests that have not yet been authenticated.""" client = self.client infoUrl = self.infoUrl response = client.get(infoUrl) self.assertEqual(response.status_code, 400) def test_invalid_request(self): """Tests an invalid request by mis-specifying parameters.""" client = self.client loginUrl = self.loginUrl infoUrl = self.infoUrl client.post(loginUrl, {'username': '******', 'password': '******'}) response = client.post(infoUrl) self.assertEqual(response.status_code, 400) def test_correct_log_and_response(self): """Tests that access is logged and returns valid response.""" client = self.client loginUrl = self.loginUrl infoUrl = self.infoUrl client.post(loginUrl, {'username': '******', 'password': '******'}) response = client.get(infoUrl) self.assertEqual(response.status_code, 200) self.assertTrue(len(ServerInfoAccessLog.objects.all()) == 1) access_log = ServerInfoAccessLog.objects.all()[0] self.assertEqual(access_log.user, self.user) json_data = json.loads(response.content) self.assertTrue('server_info' in json_data) self.assertTrue('server_time' in json_data) def test_loadtest(self): """Tests the max load the view can handle.""" client = self.client loginUrl = self.loginUrl infoUrl = self.infoUrl client.post(loginUrl, {'username': '******', 'password': '******'}) total_ops = 0 min_time = 10.0 start_time = datetime.datetime.now() while (datetime.datetime.now() - start_time).total_seconds() < min_time: client.get(infoUrl) total_ops += 1 end_time = datetime.datetime.now() total_time = (end_time - start_time).total_seconds() op_rate = total_ops / total_time OP_RATE_THRESH = 10 * 3 * 2 self.assertTrue(op_rate >= OP_RATE_THRESH)
class TestServerInfoView(TestCase): """Tests the server_info view.""" def setUp(self): """Sets up the client, server info URL, and user.""" cache.clear() self.user = User.objects.create_user('testuser', '*****@*****.**', 'testpass') self.user.save() response = self.client.post(login_url, { 'username': '******', 'password': '******', }) self.assertEqual(200, response.status_code) self.info = ServerInfo() self.info.team_msg = 'test message' self.info.save() gpos = GpsPosition(latitude=0, longitude=0) gpos.save() self.mission = MissionConfig() self.mission.is_active = True self.mission.home_pos = gpos self.mission.emergent_last_known_pos = gpos self.mission.off_axis_target_pos = gpos self.mission.sric_pos = gpos self.mission.air_drop_pos = gpos self.mission.server_info = self.info self.mission.save() def test_invalid_request(self): """Tests an invalid request by mis-specifying parameters.""" response = self.client.post(info_url) self.assertEqual(405, response.status_code) def test_no_active_mission(self): """Tests that no active mission returns 500.""" self.mission.is_active = False self.mission.save() response = self.client.get(info_url) self.assertEqual(500, response.status_code) def test_correct_log_and_response(self): """Tests that access is logged and returns valid response.""" response = self.client.get(info_url) self.assertEqual(200, response.status_code) self.assertEqual(len(ServerInfoAccessLog.objects.all()), 1) access_log = ServerInfoAccessLog.objects.all()[0] self.assertEqual(access_log.user, self.user) json_data = json.loads(response.content) self.assertTrue('message' in json_data) self.assertTrue('message_timestamp' in json_data) self.assertTrue('server_time' in json_data) def test_loadtest(self): """Tests the max load the view can handle.""" if not settings.TEST_ENABLE_LOADTEST: return total_ops = 0 start_t = time.clock() while time.clock() - start_t < settings.TEST_LOADTEST_TIME: self.client.get(info_url) total_ops += 1 end_t = time.clock() total_t = end_t - start_t op_rate = total_ops / total_t print 'Server Info Rate (%f)' % op_rate self.assertGreaterEqual(op_rate, settings.TEST_LOADTEST_INTEROP_MIN_RATE)
class TestGetServerInfoView(TestCase): """Tests the getServerInfo view.""" def setUp(self): """Sets up the client, server info URL, and user.""" self.user = User.objects.create_user('testuser', '*****@*****.**', 'testpass') self.user.save() self.info = ServerInfo() self.info.team_msg = 'test message' self.info.save() self.client = Client() self.loginUrl = reverse('auvsi_suas:login') self.infoUrl = reverse('auvsi_suas:server_info') def tearDown(self): """Destroys the user.""" self.user.delete() ServerInfo.objects.all().delete() ServerInfoAccessLog.objects.all().delete() def test_not_authenticated(self): """Tests requests that have not yet been authenticated.""" client = self.client infoUrl = self.infoUrl response = client.get(infoUrl) self.assertEqual(response.status_code, 400) def test_invalid_request(self): """Tests an invalid request by mis-specifying parameters.""" client = self.client loginUrl = self.loginUrl infoUrl = self.infoUrl client.post(loginUrl, {'username': '******', 'password': '******'}) response = client.post(infoUrl) self.assertEqual(response.status_code, 400) def test_correct_log_and_response(self): """Tests that access is logged and returns valid response.""" client = self.client loginUrl = self.loginUrl infoUrl = self.infoUrl client.post(loginUrl, {'username': '******', 'password': '******'}) response = client.get(infoUrl) self.assertEqual(response.status_code, 200) self.assertTrue(len(ServerInfoAccessLog.objects.all()) == 1) access_log = ServerInfoAccessLog.objects.all()[0] self.assertEqual(access_log.user, self.user) json_data = json.loads(response.content) self.assertTrue('server_info' in json_data) self.assertTrue('server_time' in json_data) def test_loadtest(self): """Tests the max load the view can handle.""" client = self.client loginUrl = self.loginUrl infoUrl = self.infoUrl client.post(loginUrl, {'username': '******', 'password': '******'}) total_ops = 0 min_time = 10.0 start_time = datetime.datetime.now() while (datetime.datetime.now() - start_time).total_seconds() < min_time: client.get(infoUrl) total_ops += 1 end_time = datetime.datetime.now() total_time = (end_time - start_time).total_seconds() op_rate = total_ops / total_time OP_RATE_THRESH = 10 * 3 * 2 self.assertTrue(op_rate >= OP_RATE_THRESH)