import os
import pytest
from collections import OrderedDict
os . environ [ " TESTING " ] = " True "
@pytest.fixture ( scope = ' function ' )
def StringDictionaries ( ) :
ParamLine1 = OrderedDict ( { ' parameter name1 ' : ' value1 ' } )
ParamLine2 = OrderedDict ( { ' parameter name2 ' : ' value2 ' } )
ParamLine3 = OrderedDict ( { ' parameter name3 ' : ' value3 ' } )
Section1 = OrderedDict ( { ' section name1 ' : OrderedDict ( * * ParamLine1 ,
* * ParamLine2 ) } )
Section2 = OrderedDict ( { ' section name2 ' : OrderedDict ( * * ParamLine1 ,
* * ParamLine2 ) } )
Section3 = OrderedDict ( { ' section name3 ' : OrderedDict ( * * ParamLine3 ) } )
OriginalDictionary = OrderedDict ( * * Section1 , * * Section2 )
TemplateDictionary = OrderedDict ( * * Section3 )
ResultDictionary = OrderedDict ( * * Section1 , * * Section2 , * * Section3 )
return ( OriginalDictionary , TemplateDictionary , ResultDictionary )
@pytest.fixture ( scope = ' function ' )
def TupleDictionaries ( ) :
ParamLine1 = OrderedDict ( { ( ' ' , ' parameter name1 ' ) : ' value1 ' } )
ParamLine2 = OrderedDict ( { ( ' ' , ' parameter name2 ' ) : ' value2 ' } )
ParamLine3 = OrderedDict ( { ( ' ' , ' parameter name3 ' ) : ' value3 ' } )
Section1 = OrderedDict ( { ( ' ' , ' section name1 ' ) : OrderedDict ( * * ParamLine1 ,
* * ParamLine2 ) } )
Section2 = OrderedDict ( { ( ' ' , ' section name2 ' ) : OrderedDict ( * * ParamLine1 ,
* * ParamLine2 ) } )
Section3 = OrderedDict ( { ( ' ' , ' section name3 ' ) : OrderedDict ( * * ParamLine3 ) } )
OriginalDictionary = OrderedDict ( * * Section1 , * * Section2 )
TemplateDictionary = OrderedDict ( * * Section3 )
ResultDictionary = OrderedDict ( * * Section1 , * * Section2 , * * Section3 )
return ( OriginalDictionary , TemplateDictionary , ResultDictionary )
@pytest.fixture ( scope = ' function ' )
def MergeSectionDictionaries ( ) :
ParamLine1 = OrderedDict ( { ( ' ' , ' parameter name1 ' ) : ' value1 ' } )
ParamLine2 = OrderedDict ( { ( ' ' , ' parameter name2 ' ) : ' value2 ' } )
ParamLine3 = OrderedDict ( { ( ' ' , ' parameter name3 ' ) : ' value3 ' } )
Section1 = OrderedDict ( { ( ' ' , ' section name1 ' ) : OrderedDict ( * * ParamLine1 ,
* * ParamLine2 ) } )
Section2 = OrderedDict ( { ( ' ' , ' section name2 ' ) : OrderedDict ( * * ParamLine1 ,
* * ParamLine2 ) } )
Section2Add = OrderedDict ( { ( ' ' , ' section name2 ' ) :
OrderedDict ( * * ParamLine3 ) } )
Section2Added = OrderedDict ( { ( ' ' , ' section name2 ' ) :
OrderedDict ( * * ParamLine1 ,
* * ParamLine2 ,
* * ParamLine3 ) } )
OriginalDictionary = OrderedDict ( * * Section1 , * * Section2 )
TemplateDictionary = OrderedDict ( * * Section2Add )
ResultDictionary = OrderedDict ( * * Section1 , * * Section2Added )
return ( OriginalDictionary , TemplateDictionary , ResultDictionary )
@pytest.fixture ( scope = ' function ' )
def ChangeParameterDictionaries ( ) :
ParamLine1 = OrderedDict ( { ( ' ' , ' parameter name1 ' ) : ' value1 ' } )
ParamLine2 = OrderedDict ( { ( ' ' , ' parameter name2 ' ) : ' value2 ' } )
ParamLine3 = OrderedDict ( { ( ' ' , ' parameter name3 ' ) : ' value3 ' } )
ParamLine2New = OrderedDict ( { ( ' ' , ' parameter name2 ' ) : ' NewValue ' } )
ParamLine3New = OrderedDict ( { ( ' ' , ' parameter name3 ' ) : ' OtherValue ' } )
Section = OrderedDict ( { ( ' ' , ' section name1 ' ) : OrderedDict ( * * ParamLine1 ,
* * ParamLine2 ,
* * ParamLine3 ) } )
SectionNew = OrderedDict ( { ( ' ' , ' section name1 ' ) :
OrderedDict ( * * ParamLine1 ,
* * ParamLine2New ,
* * ParamLine3New ) } )
OriginalDictionary = OrderedDict ( * * Section )
TemplateDictionary = OrderedDict ( * * SectionNew )
ResultDictionary = TemplateDictionary
return ( OriginalDictionary , TemplateDictionary , ResultDictionary )
@pytest.fixture ( scope = ' function ' )
def DeleteSectionDictionaries ( ) :
ParamLine1 = OrderedDict ( { ( ' ' , ' parameter name1 ' ) : ' value1 ' } )
ParamLine2 = OrderedDict ( { ( ' ' , ' parameter name2 ' ) : ' value2 ' } )
Section1 = OrderedDict ( { ( ' ' , ' section name1 ' ) : OrderedDict ( * * ParamLine1 ,
* * ParamLine2 ) } )
Section2 = OrderedDict ( { ( ' ' , ' section name2 ' ) : OrderedDict ( * * ParamLine1 ,
* * ParamLine2 ) } )
SectionDel = OrderedDict ( { ( ' ! ' , ' section name2 ' ) : OrderedDict ( ) } )
OriginalDictionary = OrderedDict ( * * Section1 , * * Section2 )
TemplateDictionary = OrderedDict ( * * SectionDel )
ResultDictionary = OrderedDict ( * * Section1 )
return ( OriginalDictionary , TemplateDictionary , ResultDictionary )
@pytest.fixture ( scope = ' function ' )
def ReplaceSectionDictionaries ( ) :
ParamLine1 = OrderedDict ( { ( ' ' , ' parameter name1 ' ) : ' value1 ' } )
ParamLine2 = OrderedDict ( { ( ' ' , ' parameter name2 ' ) : ' value2 ' } )
ParamLine3 = OrderedDict ( { ( ' ' , ' parameter name3 ' ) : ' value3 ' } )
ParamLine4 = OrderedDict ( { ( ' ' , ' parameter name4 ' ) : ' value4 ' } )
Section1 = OrderedDict ( { ( ' ' , ' section name1 ' ) : OrderedDict ( * * ParamLine1 ,
* * ParamLine2 ) } )
Section2 = OrderedDict ( { ( ' ' , ' section name2 ' ) : OrderedDict ( * * ParamLine1 ,
* * ParamLine2 ) } )
Section2Replace = OrderedDict ( { ( ' - ' , ' section name2 ' ) :
OrderedDict ( * * ParamLine3 , * * ParamLine4 ) } )
Section2Replaced = OrderedDict ( { ( ' ' , ' section name2 ' ) :
OrderedDict ( * * ParamLine3 , * * ParamLine4 ) } )
OriginalDictionary = OrderedDict ( * * Section1 , * * Section2 )
TemplateDictionary = OrderedDict ( * * Section2Replace )
ResultDictionary = OrderedDict ( * * Section1 , * * Section2Replaced )
return ( OriginalDictionary , TemplateDictionary , ResultDictionary )
@pytest.fixture ( scope = ' function ' )
def DeleteParameterDictionaries ( ) :
ParamLine1 = OrderedDict ( { ( ' ' , ' parameter name1 ' ) : ' value1 ' } )
ParamLine2 = OrderedDict ( { ( ' ' , ' parameter name2 ' ) : ' value2 ' } )
ParamLineDel = OrderedDict ( { ( ' ! ' , ' parameter name2 ' ) : ' value2 ' } )
Section1 = OrderedDict ( { ( ' ' , ' section name1 ' ) : OrderedDict ( * * ParamLine1 ,
* * ParamLine2 ) } )
Section2 = OrderedDict ( { ( ' ' , ' section name2 ' ) : OrderedDict ( * * ParamLine1 ,
* * ParamLine2 ) } )
SectionDel = OrderedDict ( { ( ' ' , ' section name2 ' ) :
OrderedDict ( * * ParamLineDel ) } )
SectionAfterDel = OrderedDict ( { ( ' ' , ' section name2 ' ) :
OrderedDict ( * * ParamLine1 ) } )
OriginalDictionary = OrderedDict ( * * Section1 , * * Section2 )
TemplateDictionary = OrderedDict ( * * SectionDel )
ResultDictionary = OrderedDict ( * * Section1 , * * SectionAfterDel )
return ( OriginalDictionary , TemplateDictionary , ResultDictionary )
@pytest.fixture ( scope = ' function ' )
def DictionariesWithoutSections ( ) :
ParamLine1 = OrderedDict ( { ( ' ' , ' parameter name1 ' ) : ' value1 ' } )
ParamLine2 = OrderedDict ( { ( ' ' , ' parameter name2 ' ) : ' value2 ' } )
ParamLine3 = OrderedDict ( { ( ' ' , ' parameter name3 ' ) : ' value3 ' } )
ParamLineDel = OrderedDict ( { ( ' ! ' , ' parameter name2 ' ) : ' ' } )
OriginalDictionary = OrderedDict ( * * ParamLine1 , * * ParamLine2 )
TemplateDictionary = OrderedDict ( * * ParamLine3 , * * ParamLineDel )
ResultDictionary = OrderedDict ( * * ParamLine1 , * * ParamLine3 )
return ( OriginalDictionary , TemplateDictionary , ResultDictionary )
def pytest_addoption ( parser ) :
parser . addoption (
" --chroot-test " ,
action = " store_true " ,
default = False ,
help = " run chroot tests "
)
parser . addoption (
" --backgrounds-slow " ,
action = " store_true " ,
default = False ,
help = " run slow backgrounds tests. "
)
parser . addoption (
" --from-root " ,
action = " store_true " ,
default = False ,
help = " run tests that needs root rights. "
)
def pytest_collection_modifyitems ( config , items ) :
if not config . getoption ( " --chroot-test " ) :
skip_chroot = pytest . mark . skip (
reason = " need --chroot-test option to run " )
for item in items :
if " chroot " in item . keywords :
item . add_marker ( skip_chroot )
if not config . getoption ( " --backgrounds-slow " ) :
skip_backgrounds = pytest . mark . skip (
reason = " need --backgrounds-slow option to run " )
for item in items :
if " backgrounds_slow " in item . keywords :
item . add_marker ( skip_backgrounds )
if not config . getoption ( " --from-root " ) :
skip_from_root = pytest . mark . skip (
reason = " need --from-root option to run " )
for item in items :
if " needs_root " in item . keywords :
item . add_marker ( skip_from_root )