def test_plugin_option(self, mdefs):
     emf = emf_random.EMFetcher_random(mdefs[1])
     assert emf.plugin_option('foo') == 123
     assert emf.plugin_option('bar.zig') == "Zoom"
     with pytest.raises(KeyError):
         emf.plugin_option('BOGUS')
     assert emf.plugin_option('BOGUS', default="D") == "D"
 def test_bad_timerange(self, mdefs):
     emf = emf_random.EMFetcher_random(mdefs[1])
     with pytest.raises(TypeError):
         emf.fetch('Not TimeRange')
     tmrange3 = timerange.TimeRange()
     with pytest.raises(ValueError):
         emf.fetch(tmrange3)
 def test_format_param_extinfo(self, mdefs, tmranges):
     emf = emf_random.EMFetcher_random(mdefs[1], extinfo=self.extinfo)
     emf.fetch(tmranges[2])  # (causes plugin to set its self._tmrange)
     assert emf._format_str('{extinfo[a]}') == "65"
     assert emf._format_str('{extinfo[special][q]}') == "34"
     with pytest.raises(KeyError):
         emf._format_str('{extinfo[special][BOGUS]}')
 def test_plugin_extinfo(self, mdefs):
     emf = emf_random.EMFetcher_random(mdefs[1], extinfo=self.extinfo)
     assert emf.plugin_extinfo('a') == 65
     assert emf.plugin_extinfo('b') == "LilB"
     with pytest.raises(KeyError):
         emf.plugin_extinfo('BOGUS')
     assert emf.plugin_extinfo('BOGUS', default="D") == "D"
 def test_random(self, mdefs, tmranges):
     emf = emf_random.EMFetcher_random(mdefs[1])
     emf.plugin_create()
     for x in range(100):
         dpoint1 = emf.fetch(tmranges[1])
         assert (0 <= dpoint1.value <= 100)
     emf.configure(options={'random': {'round': True}})
     assert isinstance(emf.fetch(tmranges[1]).value, (int, long))
     emf.plugin_destroy()
 def test_format_param_bad(self, mdefs, tmranges):
     emf = emf_random.EMFetcher_random(mdefs[1], extinfo=self.extinfo)
     emf.fetch(tmranges[2])  # (causes plugin to set its self._tmrange)
     with pytest.raises(TypeError):
         emf._format_str(12345)
     with pytest.raises(TypeError):
         emf._format_str(None)
     with pytest.raises(KeyError):
         emf._format_str('{BOGUS}')
 def test_format_param_str(self, mdefs, tmranges):
     emf = emf_random.EMFetcher_random(mdefs[1], extinfo=self.extinfo)
     emf.fetch(tmranges[2])  # (causes plugin to set its self._tmrange)
     assert emf._format_str("plain") == "plain"
     assert emf._format_str("My {mdef.table} here") == "My tblname here"
     assert emf._format_str("{tmrange.inc_begin:%Y-%m-%d}") == "2014-04-14"
     assert emf._format_str(
         "{tmrange.exc_end:%Y-%m-%d %H:%M:%S}") == "2014-04-15 16:42:45"
     assert emf._format_str("{tmrange.exc_end:%s}") == "1397605365"
 def test_format_params(self, mdefs, tmranges):
     emf = emf_random.EMFetcher_random(mdefs[1], extinfo=self.extinfo)
     emf.fetch(tmranges[2])  # (causes plugin to set its self._tmrange)
     params_spec = {
         'plain': "plainval",
         'mdef': "My {mdef.table} here",
         'lit': "{{mdef.table}}",
         'ext': '{extinfo[special][q]}',
     }
     params = dict()
     for k, v in params_spec.iteritems():
         params[k] = emf._format_str(v)
     assert params['plain'] == "plainval"
     assert params['mdef'] == "My tblname here"
     assert params['lit'] == "{mdef.table}"
     assert params['ext'] == "34"
 def test_bad_metricdef(self, mdefs):
     with pytest.raises(TypeError):
         emf_random.EMFetcher_random('Not MetricDef')
     mdefs[1].emfetch_id = ''
     with pytest.raises(ValueError):
         emf_random.EMFetcher_random(mdefs[1])
 def test_format_param_literal(self, mdefs, tmranges):
     emf = emf_random.EMFetcher_random(mdefs[1], extinfo=self.extinfo)
     emf.fetch(tmranges[2])  # (causes plugin to set its self._tmrange)
     assert emf._format_str('plain') == "plain"
     assert emf._format_str(
         "My {{mdef.table}} here") == "My {mdef.table} here"