Как выполнить юнит-тестирование python файлов из .ipynb Databricks без импорта всего из файла .ipynb?
Например, я пытаюсь использовать unittest из VS Код на моем рабочем столе, где я клонировал файл .ipynb из моего Azure экземпляра Databricks.
Как только я запустил его локально, у меня есть простой модульный тест для чтения CSV.
Проблема в том, что когда я пытаюсь загрузить --single функцию-- из файла, который я тестирую (csv_to_parquet), тест пытается загрузить весь файл, который содержит элементы, недоступные локально. В частности, NameError: name 'dbutils' is not defined
.
Я не использую dbutils в этом модульном тесте. Он просто читает это, когда пытается загрузить файл csv_to_parquet.py . Как сказать модульному тесту полностью игнорировать это?
Единственная функция, импортируемая из файла, который я хочу протестировать:
def readAndShowCSV(sFilePath = 'users.csv/users' ):
csvFile = spark.read.csv(mountPoint+loadPath+'/' + sFilePath, header=True, inferSchema=True)
csvFile.show(5)
return csvFile
Так почему же Dbutils Вам вообще звонят?
import unittest
import pandas as pd
from csv_to_parquet import readAndShowCSV
# Inherits from unittest.TestCase
# Gives us access to testing capibilities
class TestParquet(unittest.TestCase):
def test_readAndShowCSV(self):
# Function lives in csv_to_parquet.py
csvFile = readAndShowCSV()
# Will run all of our tests
if __name__ == '__main__':
unittest.main()