<s> import unittest <EOL> import testutil <EOL> class TestPkgbuildToAurinfo ( unittest . TestCase ) : <EOL> def assertPackageNamesEqual ( self , srcinfo , package_names ) : <EOL> return self . assertListEqual ( sorted ( srcinfo . keys ( ) ) , sorted ( package_names ) ) <EOL> def test_SinglePackage ( self ) : <EOL> pb = testutil . parse_pkgbuild ( '<STR_LIT>' ) <EOL> self . assertPackageNamesEqual ( pb , [ '<STR_LIT>' ] ) <EOL> pb = testutil . parse_pkgbuild ( '''<STR_LIT>''' ) <EOL> self . assertPackageNamesEqual ( pb , [ '<STR_LIT>' ] ) <EOL> def test_SplitPackageNames ( self ) : <EOL> pb = testutil . parse_pkgbuild ( '''<STR_LIT>''' ) <EOL> self . assertPackageNamesEqual ( pb , [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> def test_RepeatGlobalDecls ( self ) : <EOL> pb = testutil . parse_pkgbuild ( '''<STR_LIT>''' ) <EOL> self . assertPackageNamesEqual ( pb , [ '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> def test_PackageAttributeOverrides ( self ) : <EOL> pb = testutil . parse_pkgbuild ( '''<STR_LIT>''' ) <EOL> self . assertPackageNamesEqual ( pb , [ '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT:bar>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT:foo>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> def test_HandlesDeclareInGlobalAttrs ( self ) : <EOL> pb = testutil . parse_pkgbuild ( '''<STR_LIT>''' ) <EOL> self . assertPackageNamesEqual ( pb , [ '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT:bar>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT:foo>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> def test_PackageAttributeAppends ( self ) : <EOL> pb = testutil . parse_pkgbuild ( '''<STR_LIT>''' ) <EOL> self . assertPackageNamesEqual ( pb , [ '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT:foo>' , '<STR_LIT:bar>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT:foo>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> def test_NestedBashVariables ( self ) : <EOL> pb = testutil . parse_pkgbuild ( '''<STR_LIT>''' ) <EOL> self . assertPackageNamesEqual ( pb , [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> def test_GlobalVariableInPackage ( self ) : <EOL> pb = testutil . parse_pkgbuild ( '''<STR_LIT>''' ) <EOL> self . assertPackageNamesEqual ( pb , [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> @ unittest . expectedFailure <EOL> def test_MultipleAttributesOnOneLine ( self ) : <EOL> pb = testutil . parse_pkgbuild ( '''<STR_LIT>''' ) <EOL> self . assertEqual ( [ '<STR_LIT:foo>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT:bar>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> def test_PackagesCannotOverridePkgver ( self ) : <EOL> pb = testutil . parse_pkgbuild ( '''<STR_LIT>''' ) <EOL> self . assertPackageNamesEqual ( pb , [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( "<STR_LIT:1>" , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( "<STR_LIT:2>" , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( "<STR_LIT:3>" , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> def test_PackagesCannotOverrideMakedepends ( self ) : <EOL> pb = testutil . parse_pkgbuild ( '''<STR_LIT>''' ) <EOL> self . assertPackageNamesEqual ( pb , [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' , '<STR_LIT>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> def test_HandlesMultiLineArrays ( self ) : <EOL> pb = testutil . parse_pkgbuild ( '''<STR_LIT>''' ) <EOL> self . assertPackageNamesEqual ( pb , [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT:foo>' , '<STR_LIT:bar>' , '<STR_LIT>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> @ unittest . expectedFailure <EOL> def test_HandlesMultiLineValuesInFunctions ( self ) : <EOL> pb = testutil . parse_pkgbuild ( '''<STR_LIT>''' ) <EOL> self . assertPackageNamesEqual ( pb , [ '<STR_LIT>' ] ) <EOL> self . assertRegex ( pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] [ <NUM_LIT:0> ] , '<STR_LIT>' ) <EOL> def test_HandlesRegexyPackageNames ( self ) : <EOL> pb = testutil . parse_pkgbuild ( '''<STR_LIT>''' ) <EOL> self . assertPackageNamesEqual ( pb , [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' , '<STR_LIT>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( '<STR_LIT>' , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> def test_HandlesQuotedValues ( self ) : <EOL> pb = testutil . parse_pkgbuild ( '''<STR_LIT>''' ) <EOL> self . assertPackageNamesEqual ( pb , [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' , '<STR_LIT>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> def test_HandlesBraceExpansions ( self ) : <EOL> pb = testutil . parse_pkgbuild ( '''<STR_LIT>''' ) <EOL> self . assertPackageNamesEqual ( pb , [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' , '<STR_LIT>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' , '<STR_LIT>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> @ unittest . expectedFailure <EOL> def test_HandlesShellVarInPackageAttr ( self ) : <EOL> pb = testutil . parse_pkgbuild ( '''<STR_LIT>''' ) <EOL> self . assertPackageNamesEqual ( pb , [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT:bar>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> def test_HandlesMutlivaluedArchSpecific ( self ) : <EOL> pb1 = testutil . parse_pkgbuild ( '''<STR_LIT>''' ) <EOL> self . assertPackageNamesEqual ( pb1 , [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' , '<STR_LIT>' ] , pb1 [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' ] , pb1 [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' ] , pb1 [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> pb2 = testutil . parse_pkgbuild ( '''<STR_LIT>''' ) <EOL> self . assertDictEqual ( pb1 , pb2 ) <EOL> def test_IgnoresUnsupportedArchSpecificOverrideInGlobal ( self ) : <EOL> pb = testutil . parse_pkgbuild ( '''<STR_LIT>''' ) <EOL> self . assertPackageNamesEqual ( pb , [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' , '<STR_LIT>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertNotIn ( '<STR_LIT>' , pb [ '<STR_LIT>' ] ) <EOL> def test_IgnoresUnsupportedArchSpecificOverrideInPackage ( self ) : <EOL> pb = testutil . parse_pkgbuild ( '''<STR_LIT>''' ) <EOL> self . assertPackageNamesEqual ( pb , [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' , '<STR_LIT>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertNotIn ( '<STR_LIT>' , pb [ '<STR_LIT>' ] ) <EOL> def test_IgnoresEmptyGlobalAttributes ( self ) : <EOL> pb = testutil . parse_pkgbuild ( '''<STR_LIT>''' ) <EOL> self . assertPackageNamesEqual ( pb , [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( '<STR_LIT>' , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertNotIn ( '<STR_LIT>' , pb [ '<STR_LIT>' ] ) <EOL> def test_EmptyPackageAttributeOverridesGlobal ( self ) : <EOL> pb = testutil . parse_pkgbuild ( '''<STR_LIT>''' ) <EOL> self . assertPackageNamesEqual ( pb , [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( '<STR_LIT>' , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertIn ( '<STR_LIT>' , pb [ '<STR_LIT>' ] ) <EOL> self . assertListEqual ( [ ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertIn ( '<STR_LIT>' , pb [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( '<STR_LIT>' , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> def test_CoverageSmokeTest ( self ) : <EOL> pb = testutil . parse_pkgbuild ( '''<STR_LIT>''' ) <EOL> expected_packages = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> self . assertPackageNamesEqual ( pb , expected_packages ) <EOL> for pkgname in expected_packages : <EOL> pkg = pb [ pkgname ] <EOL> self . assertEqual ( '<STR_LIT>' , pkg [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( '<STR_LIT:2>' , pkg [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' , '<STR_LIT>' ] , pkg [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , pkg [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( '<STR_LIT>' , pkg [ '<STR_LIT:url>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , pkg [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' , '<STR_LIT>' ] , pkg [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ] , pkg [ '<STR_LIT:source>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ] , pkg [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( '<STR_LIT>' , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' , '<STR_LIT>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( '<STR_LIT>' , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( '<STR_LIT>' , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( '<STR_LIT>' , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( '<STR_LIT>' , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' , '<STR_LIT>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( '<STR_LIT>' , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertNotIn ( '<STR_LIT>' , pb [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( '<STR_LIT>' , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertNotIn ( '<STR_LIT>' , pb [ '<STR_LIT>' ] ) <EOL> self . assertNotIn ( '<STR_LIT>' , pb [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( '<STR_LIT>' , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' , '<STR_LIT>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( '<STR_LIT>' , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertNotIn ( '<STR_LIT>' , pb [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( '<STR_LIT>' , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( [ '<STR_LIT>' , '<STR_LIT>' ] , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertEqual ( '<STR_LIT>' , pb [ '<STR_LIT>' ] [ '<STR_LIT>' ] ) <EOL> self . assertNotIn ( '<STR_LIT>' , pb [ '<STR_LIT>' ] ) <EOL> if __name__ == '<STR_LIT:__main__>' : <EOL> unittest . main ( ) </s>
