from kaggle.api.kaggle_api_extended import KaggleApi

# python -m unittest tests.test_authenticate

import os
import unittest


class TestAuthenticate(unittest.TestCase):

  def setUp(self):
    print("setup             class:%s" % self)

  def tearDown(self):
    print("teardown          class:TestStuff")

  # Environment

  def test_environment_variables(self):
    os.environ['KAGGLE_USERNAME'] = 'dinosaur'
    os.environ['KAGGLE_KEY'] = 'xxxxxxxxxxxx'
    api = KaggleApi()

    # We haven't authenticated yet
    self.assertTrue("key" not in api.config_values)
    self.assertTrue("username" not in api.config_values)
    api.authenticate()

    # Should be set from the environment
    self.assertEqual(api.config_values['key'], 'xxxxxxxxxxxx')
    self.assertEqual(api.config_values['username'], 'dinosaur')

  # Configuration Actions

  def test_config_actions(self):
    api = KaggleApi()

    self.assertTrue(api.config_dir.endswith('kaggle'))
    self.assertEqual(api.get_config_value('doesntexist'), None)


if __name__ == '__main__':
  unittest.main()
