OpenSolo/shotmanager/Test/TestRewindManager.py

63 lines
2.2 KiB
Python

# Unit tests for ZiplineShot
import math
import mock
from mock import call
from mock import Mock
from mock import patch
import os
from os import sys, path
import unittest
from dronekit import LocationGlobalRelative, Vehicle
import location_helpers
import rewindManager
from rewindManager import RewindManager
from shotManager import ShotManager
class TestRedind(unittest.TestCase):
def setUp(self):
mgr = mock.create_autospec(ShotManager)
mgr.buttonManager = Mock()
self.mock_vehicle = mock.create_autospec(Vehicle)
self.rewind = RewindManager(self.mock_vehicle, mgr)
self.mock_vehicle.location.global_relative_frame = LocationGlobalRelative(37.0, -122.0, 10.0)
def testInit(self):
""" Test init """
self.assertEqual(self.rewind.bufferSize, int(math.floor(self.rewind.rewindDistance / rewindManager.RTL_STEP_DIST)))
def testReset(self):
""" Test reset """
self.rewind.resetSpline()
for num in range(1,self.rewind.bufferSize):
self.assertEqual(self.rewind.buffer[num], None)
self.assertEqual(self.rewind.bufferSize, len(self.rewind.buffer))
self.assertEqual(self.rewind.buffer[0].lat, 37.0)
self.assertEqual(self.rewind.buffer[0].lon, -122.0)
self.assertEqual(self.rewind.buffer[0].alt, 10.0)
self.assertEqual(self.rewind.buffer[1], None)
self.assertEqual(self.rewind.did_init, True)
def testUpdateLocation(self):
""" Test loc queue """
self.mock_vehicle.location.global_relative_frame = LocationGlobalRelative(37.0, -122.0, 10.0)
self.rewind.did_init = False
self.mock_vehicle.armed = True
self.mock_vehicle.system_status = 'ACTIVE'
self.rewind.resetSpline()
self.mock_vehicle.location.global_relative_frame = LocationGlobalRelative(37.00001, -122.00002, 10.0)
self.rewind.counter = 4
self.rewind.updateLocation()
self.assertEqual(self.rewind.currentIndex, 1)
self.assertEqual(self.rewind.buffer[1].lat, 37.00001)
self.assertEqual(self.rewind.buffer[1].lon, -122.00002)
self.assertEqual(self.rewind.buffer[1].alt, 10.0)