text: """
  Tests for static parts of Twitter package
  """
  
  import os
  import pytest
  
  pytest.importorskip("twython")
  
  from nltk.twitter import Authenticate
  
  
  @pytest.fixture
  def auth():
      return Authenticate()
  
  
  class TestCredentials:
      """
      Tests that Twitter credentials from a file are handled correctly.
      """
      @classmethod
      def setup_class(self):
          self.subdir = os.path.join(os.path.dirname(__file__), 'files')
          os.environ['TWITTER'] = 'twitter-files'
  
      def test_environment(self, auth):
          """
          Test that environment variable has been read correctly.
          """
          fn = os.path.basename(auth.creds_subdir)
          assert fn == os.environ['TWITTER']
  
      @pytest.mark.parametrize("kwargs", [
          # Each of the following scenarios should raise an error:
          # An empty subdir path
          {'subdir': ''},
          # A subdir path of None
          {'subdir': None},
          # A nonexistent directory
          {'subdir': '/nosuchdir'},
          # 'credentials.txt' is not in default subdir, as read from `os.environ['TWITTER']`
          {},
          # Nonexistent credentials file ('foobar')
          {'creds_file': 'foobar'},
          # 'bad_oauth1-1.txt' is incomplete
          {'creds_file': 'bad_oauth1-1.txt'},
          # The first key in credentials file 'bad_oauth1-2.txt' is ill-formed
          {'creds_file': 'bad_oauth1-2.txt'},
          # The first two lines in 'bad_oauth1-3.txt' are collapsed
          {'creds_file': 'bad_oauth1-3.txt'},
      ])
      def test_scenarios_that_should_raise_errors(self, kwargs, auth):
          """ Various scenarios that should raise errors """
          try:
              auth.load_creds(**kwargs)
          # raises ValueError (zero length field name in format) for python 2.6
          # OSError for the rest
          except (OSError, ValueError):
              pass
          except Exception as e:
              pytest.fail('Unexpected exception thrown: %s' % e)
          else:
              pytest.fail('OSError exception not thrown.')
  
      def test_correct_file(self, auth):
          """ Test that a proper file succeeds and is read correctly """
          oauth = auth.load_creds(subdir=self.subdir)
  
          assert auth.creds_fullpath == os.path.join(self.subdir, auth.creds_file)
          assert auth.creds_file == 'credentials.txt'
          assert oauth['app_key'] == 'a'
  