Beispiel #1
0
 def testFetchWithIOError(self, _, mock_open):
     fh = mock.MagicMock()
     mock_open.return_value = fh
     fh.read.side_effect = IOError('error')
     elf = experiments.ExperimentListFetcher('file')
     self.assertRaises(experiments.ExperimentsError, elf._Fetch)
     mock_open.assert_called_with('file', 'rb')
     self.assertIsNone(elf.data)
Beispiel #2
0
 def testParseWithYamlError(self, _, mock_yaml_sl):
     mock_yaml_sl.side_effect = experiments.yaml.YAMLError
     elf = experiments.ExperimentListFetcher('file')
     elf.data = type('obj', (object, ), dict(data='data'))
     elf._Parse()
     mock_yaml_sl.assert_called_with('data')
     self.assertIsNone(elf.data.parsed)
     self.assertFalse(elf.data.valid)
Beispiel #3
0
 def testFetch(self, mock_open):
     fh = mock.MagicMock()
     mock_open.return_value = fh
     fh.read.return_value = 'data'
     elf = experiments.ExperimentListFetcher('file')
     elf._Fetch()
     mock_open.assert_called_with('file', 'rb')
     self.assertEqual('data', elf.data.data)
Beispiel #4
0
 def testParseWithMissingExperimentsField(self, _, mock_yaml_sl):
     mock_yaml_sl.return_value = {'serial': 42}
     elf = experiments.ExperimentListFetcher('file')
     elf.data = type('obj', (object, ), dict(data='data'))
     elf._Parse()
     mock_yaml_sl.assert_called_with('data')
     self.assertEqual({'serial': 42}, elf.data.parsed)
     self.assertTrue(elf.data.valid)
     self.assertEqual({}, elf.data.experiments)
Beispiel #5
0
 def testParse(self, _, mock_yaml_sl):
     exp_dict = {'serial': 42, 'experiments': 'experiments'}
     mock_yaml_sl.return_value = exp_dict
     elf = experiments.ExperimentListFetcher('file')
     elf.data = type('obj', (object, ), dict(data='data'))
     elf._Parse()
     mock_yaml_sl.assert_called_with('data')
     self.assertDictEqual(exp_dict, elf.data.parsed)
     self.assertTrue(elf.data.valid)
     self.assertEqual('experiments', elf.data.experiments)
Beispiel #6
0
    def testGetDataWithInvalidData(self, mock_parse, mock_fetch, _):
        def FetchSE():
            elf.data = type('obj', (object, ), {
                'valid': False,
                'parsed': None
            })

        mock_fetch.side_effect = FetchSE

        def ParseSE():
            elf.data.valid = False

        mock_parse.side_effect = ParseSE

        elf = experiments.ExperimentListFetcher('file')
        self.assertRaises(experiments.InvalidData, elf.GetData)
        self.assertFalse(elf.data.valid)
Beispiel #7
0
    def testGetData(self, mock_parse, mock_fetch):
        def FetchSE():
            elf.data = type('obj', (object, ), {
                'valid': False,
                'parsed': None,
                'data': 'data'
            })

        mock_fetch.side_effect = FetchSE

        def ParseSE():
            elf.data.valid = True
            elf.data.parsed = 'parsed'
            elf.data.serial = 1

        mock_parse.side_effect = ParseSE

        elf = experiments.ExperimentListFetcher('file')
        elf.GetData()
        self.assertTrue(elf.data.valid)
Beispiel #8
0
 def testGetDataRaisesErrorWithNoYaml(self, mock_fetch, _):
     mock_fetch.side_effect = experiments.ExperimentsError
     elf = experiments.ExperimentListFetcher('file')
     self.assertRaises(experiments.InvalidData, elf.GetData)
     self.assertIsNone(elf.data)
Beispiel #9
0
 def testParseWithNoData(self, mock_logging):
     elf = experiments.ExperimentListFetcher('file')
     # elf.data = type('obj', (object,), dict(data='data'))
     elf._Parse()
     self.assertTrue(mock_logging.error.called)
     self.assertIsNone(elf.data)