Когда вы пытаетесь удалить файл, ваш Aws :: FStream все еще открыт. Поэтому вам просто нужно закрыть его, прежде чем пытаться удалить.
Я думаю, вы можете просто позвонить
input_data->close();
перед удалением файла.
Все три ситуации, которые вы описали, - это то, где вам нужно сделать все возможное, чтобы убедиться, что вы используете слабую связь в своем дизайне.
Вам действительно нужно провести модульное тестирование метода Python raw_input
? open
метод? os.environ.get
? Нет. [1 110]
Вам необходимо настроить дизайн так, чтобы вы могли заменить другие способы получения этого ввода. Затем, во время ваших модульных тестов, вы добавите заглушку какого-то рода, которая на самом деле не вызывает raw_input
или open
.
Например, ваш обычный код может выглядеть примерно так:
import os
def say_hello(input_func):
name = input_func()
return "Hello " + name
def prompt_for_name():
return raw_input("What is your name? ")
print say_hello(prompt_for_name)
# Normally would pass in methods, but lambdas can be used for brevity
print say_hello(lambda: open("a.txt").readline())
print say_hello(lambda: os.environ.get("USER"))
Сессия выглядит так:
What is your name? somebody Hello somebody Hello [some text] Hello mark
Тогда ваш тест будет выглядеть так:
def test_say_hello():
output = say_hello(lambda: "test")
assert(output == "Hello test")
Имейте в виду, что вам не нужно тестировать возможности ввода-вывода языка (если только вы не разрабатываете язык, что совершенно иная ситуация).