def setUp(self):
    crawler = CrawlerRunner().create_crawler(Spider)
    self.spider = crawler._create_spider('foo')
    self.mw = StatsdMiddleware().from_crawler(crawler)
    self.mw.spider_opened(self.spider)

    self.statsd_prefix = "{}.{}.".format(socket.gethostname(), self.spider.name)
    self.client = udp_client(self.statsd_prefix)
    self.mw.statsd_client = self.client
  def test_init_spider_custom_name(self):
    hostname = 'captn-fluffington'
    spider_name = 'test-spider'
    prefix_pattern = '{hostname}_{name}_dev_'
    expected_prefix = prefix_pattern.format(hostname=hostname, name=spider_name)

    settings = {'STATSD_HOSTNAME': hostname, 'STATSD_PREFIX': prefix_pattern}
    crawler = CrawlerRunner(settings).create_crawler(Spider)
    spider = crawler._create_spider(spider_name)
    mw = StatsdMiddleware().from_crawler(crawler)

    mw.spider_opened(spider)
    mw.statsd_client = udp_client(expected_prefix)
    self.assertEqual(mw.statsd_prefix, expected_prefix)

    req = Request('http://scrapytest.org/')
    mw.process_request(req, spider)
    sock_check(mw.statsd_client._sock,
               1,
               'udp',
               val='{}.spider_reqs_issued:1|c'.format(expected_prefix))