| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- # -*- coding: utf-8 -*-
- """
- Tests for static parts of Twitter package
- """
- import os
- import unittest
- from nose import SkipTest
- try:
- import twython
- except ImportError as e:
- raise SkipTest("The twython library has not been installed.")
- from nltk.twitter import Authenticate
- class TestCredentials(unittest.TestCase):
- """
- Tests that Twitter credentials information from file is handled correctly.
- """
- def setUp(self):
- self.subdir = os.path.join(os.path.dirname(__file__), 'files')
- self.auth = Authenticate()
- os.environ['TWITTER'] = 'twitter-files'
- def test_environment(self):
- """
- Test that environment variable has been read correctly.
- """
- fn = os.path.basename(self.auth.creds_subdir)
- self.assertEqual(fn, os.environ['TWITTER'])
- def test_empty_subdir1(self):
- """
- Setting subdir to empty path should raise an error.
- """
- try:
- self.auth.load_creds(subdir='')
- # raises ValueError (zero length field name in format) for python 2.6
- # OSError for the rest
- except OSError:
- pass
- except ValueError:
- pass
- except Exception as e:
- self.fail('Unexpected exception thrown: %s' % e)
- else:
- self.fail('OSError exception not thrown.')
- def test_empty_subdir2(self):
- """
- Setting subdir to `None` should raise an error.
- """
- self.auth.creds_subdir = None
- try:
- self.auth.load_creds()
- except ValueError:
- pass
- except Exception as e:
- self.fail('Unexpected exception thrown: %s' % e)
- else:
- self.fail('ValueError exception not thrown.')
- def test_missingdir(self):
- """
- Setting subdir to nonexistent directory should raise an error.
- """
- try:
- self.auth.load_creds(subdir='/nosuchdir')
- # raises ValueError (zero length field name in format) for python 2.6
- # OSError for the rest
- except OSError:
- pass
- except ValueError:
- pass
- except Exception as e:
- self.fail('Unexpected exception thrown: %s' % e)
- else:
- self.fail('OSError exception not thrown.')
- def test_missingfile1(self):
- """
- Defaults for authentication will fail since 'credentials.txt' not
- present in default subdir, as read from `os.environ['TWITTER']`.
- """
- try:
- self.auth.load_creds()
- # raises ValueError (zero length field name in format) for python 2.6
- # OSError for the rest
- except OSError:
- pass
- except ValueError:
- pass
- except Exception as e:
- self.fail('Unexpected exception thrown: %s' % e)
- else:
- self.fail('OSError exception not thrown.')
- def test_missingfile2(self):
- """
- Credentials file 'foobar' cannot be found in default subdir.
- """
- try:
- self.auth.load_creds(creds_file='foobar')
- # raises ValueError (zero length field name in format) for python 2.6
- # OSError for the rest
- except OSError:
- pass
- except ValueError:
- pass
- except Exception as e:
- self.fail('Unexpected exception thrown: %s' % e)
- else:
- self.fail('OSError exception not thrown.')
- def test_incomplete_file(self):
- """
- Credentials file 'bad_oauth1-1.txt' is incomplete
- """
- try:
- self.auth.load_creds(creds_file='bad_oauth1-1.txt', subdir=self.subdir)
- except ValueError:
- pass
- except Exception as e:
- self.fail('Unexpected exception thrown: %s' % e)
- else:
- self.fail('ValueError exception not thrown.')
- def test_malformed_file1(self):
- """
- First key in credentials file 'bad_oauth1-2.txt' is ill-formed
- """
- try:
- self.auth.load_creds(creds_file='bad_oauth1-2.txt', subdir=self.subdir)
- except ValueError:
- pass
- except Exception as e:
- self.fail('Unexpected exception thrown: %s' % e)
- else:
- self.fail('ValueError exception not thrown.')
- def test_malformed_file2(self):
- """
- First key in credentials file 'bad_oauth1-2.txt' is ill-formed
- """
- try:
- self.auth.load_creds(creds_file='bad_oauth1-3.txt', subdir=self.subdir)
- except ValueError:
- pass
- except Exception as e:
- self.fail('Unexpected exception thrown: %s' % e)
- else:
- self.fail('ValueError exception not thrown.')
- def test_correct_path(self):
- """
- Path to default credentials file is well-formed, given specified
- subdir.
- """
- self.auth.load_creds(subdir=self.subdir)
- self.auth.creds_fullpath = os.path.join(self.subdir, self.auth.creds_file)
- def test_correct_file1(self):
- """
- Default credentials file is identified
- """
- self.auth.load_creds(subdir=self.subdir)
- self.assertEqual(self.auth.creds_file, 'credentials.txt')
- def test_correct_file2(self):
- """
- Default credentials file has been read correctluy
- """
- oauth = self.auth.load_creds(subdir=self.subdir)
- self.assertEqual(oauth['app_key'], 'a')
- if __name__ == '__main__':
- unittest.main()
|