

def testSpecs(self):
    test_data = '\n    # user specs\n    root        ALL = (ALL) ALL\n    %wheel      ALL = (ALL) ALL\n    bob     SPARC = (OP) ALL : SGI = (OP) ALL\n    fred        ALL = (DB) NOPASSWD: ALL\n    '
    contents = StringIO.StringIO(test_data)
    config = config_file.SudoersParser()
    result = list(config.Parse(None, contents, None))
    golden = {
        'entries': [{
            'users': ['root'],
            'hosts': ['ALL'],
            'cmdspec': ['(ALL)', 'ALL'],
        }, {
            'users': ['%wheel'],
            'hosts': ['ALL'],
            'cmdspec': ['(ALL)', 'ALL'],
        }, {
            'users': ['bob'],
            'hosts': ['SPARC'],
            'cmdspec': ['(OP)', 'ALL'],
        }, {
            'users': ['bob'],
            'hosts': ['SGI'],
            'cmdspec': ['(OP)', 'ALL'],
        }, {
            'users': ['fred'],
            'hosts': ['ALL'],
            'cmdspec': ['(DB)', 'NOPASSWD:', 'ALL'],
        }],
    }
    self.assertDictEqual(contents[0].ToPrimitiveDict(), golden)

dataset/ETHPy150Open google/grr/grr/parsers/config_file_test.py SudoersParserTest.testSpecs/VarMisuse@199/385 `result`->`contents`