Я пытаюсь запустить скрипт модульного теста python3, но он выдает ошибку «модуль не найден», когда он использует объекты из основного скрипта и встречает операторы импорта.Я не сталкиваюсь с этой ошибкой, когда запускаю основной сценарий и код выполняется так, как ожидалось.Я получаю сообщение об ошибке:
Traceback (most recent call last):
File "parkingLot_test.py", line 3, in <module>
from source import parking
File "/home/stash/Desktop/parking-lot/parking-lot-1.4.2/parking_lot/parking_lot/bin/source/parking.py", line 1, in <module>
import lot
ModuleNotFoundError: No module named 'lot'
Структура каталогов выглядит следующим образом:
├── file_inputs.txt
├── parking_lot
├── parkingLot_test.py
├── run_functional_tests
├── setup
└── source
├── car.py
├── __init__.py
├── lot.py
├── main.py
├── parking.py
Код файла модульного теста parkingLot_test.py :
import unittest
from source import parking
class ParkingTest(unittest.TestCase):
@classmethod
def MakeClass(cls):
cls.parking = parking.Parking()
cls.allocated_slot = 1
def test_a_create_parking_lot(self):
parking_slots = 6
self.parking.create_parking_lot(parking_slots)
self.assertEqual(len(self.parking.slots), parking_slots,
msg="Wrong parking lot created")
def test_b_park(self):
registration_no = "MH-12-FF-2017"
colour = "Black"
self.parking.park(registration_no, colour)
self.assertFalse(
self.parking.slots[self.allocated_slot].available, "Park failed.")
for i in self.parking.slots.values():
if not i.available and i.car:
self.assertEqual(i.car.registration_no,
registration_no, "Park failed")
self.assertEqual(i.car.colour, colour, "Park failed")
def test_c_leave(self):
self.parking.leave(self.allocated_slot)
self.assertTrue(
self.parking.slots[self.allocated_slot].available, "Leave failed.")
@classmethod
def RemoveClass(cls):
del cls.parking
if __name__ == '__main__':
unittest.main()
Код для импортированного файла parking.py :
import lot
import car
class Parking:
"""
Parking class which has details about parking slots
as well as operation performed on parking are present here
"""
def __init__(self):
self.slots = {}
def create_parking_lot(self, no_of_slots):
"""This method will create parking lot if not present already with given
number of slots.
Input: no_of_slots - Integer Type
"""
no_of_slots = int(no_of_slots)
if len(self.slots) > 0:
print("Parking Lot already created")
return
if no_of_slots > 0:
for i in range(1, no_of_slots+1):
temp_slot = lot.ParkingSlot(slotNum=i,
availability=True)
self.slots[i] = temp_slot
print("Created a parking lot with %s slots" % no_of_slots)
else:
print("Number of slots provided is incorrect.")
return
def get_nearest_available_slot(self):
...................
Как я могу решить эту проблему?