가능한 모든 설치 구성을 테스트해야합니다. 구성은 때때로 중첩 배열이 포함 된 사전 배열에 보관됩니다.중첩 된 사전에서 가능한 모든 조합 생성
여기 구성 정보의 샘플입니다 (실제 구성은 더 이상) :
config = {'database': 'sqlite',
'useExisting': False,
'userCredentials': {'authType': 'windows',
'user': r'.\Testing',
'password': 'testing'
}
}
database
를 들어, 옵션 ['sqlite','mysql','oracle']
을, 그리고 useExisting
를 들어, 옵션 [True, False]
이다. 나는 그 모든 순열을 통과하는 방법을 알아낼 수있다.
그러나 userCredentials
의 경우 옵션이 매우 다를 수 있습니다. authType
이 database
인 경우 추가 매개 변수가 필요합니다. 루프를 만들고 모든 유효한 조합을 만드는 함수를 만들 수 있지만 어떻게 결합합니까? 또는 구성을 생성하는 더 좋은 방법이 있습니까?
userCredentials
도 다른 설정을 가질 수 있습니다. 예를 들어, testing1과 testing2라는 두 개의 사용자 계정이 있습니다. 두 사용자 계정으로 테스트를 실행해야하며 가능하면 모든 가능한 구성으로 테스트를 실행해야합니다. 이런 식으로 중첩 될 때 모든 구성을 재귀 적으로 생성하는 방법을 찾는 데 어려움을 겪고 있습니다.
확실하지 않지만 Itertools를 확인하십시오. 아마도 뭔가를 찾을 수 있습니다. http://docs.python.org/library/itertools.html – TankorSmash
@TankorSmash, itertools를 살펴 보았습니다. 그것으로 중첩 된 것이 없으면 모든 가능한 조합을 생성 할 수 있지만, 직접 필요한 사전을 생성하는 방법은 없습니다. – Andrew