diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index b33d109..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-language: python
-
-matrix:
-  include:
-    - python: 3.3
-    - python: 3.4
-    - python: 3.5
-    - python: 3.6
-    - python: 3.7
-      dist: xenial
-      sudo: true
-    - python: 3.7-dev
-      dist: xenial
-      sudo: true
-    - python: 3.8-dev
-      dist: xenial
-      sudo: true
-
-install:
-  - python setup.py install
-
-script:
-  - python setup.py test
-
diff --git a/README.md b/README.md
index 7084960..15c6827 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,3 @@
-[![Build Status](https://travis-ci.com/BrandwatchLtd/api_sdk.svg?branch=master)](https://travis-ci.com/BrandwatchLtd/api_sdk)
-
 # Brandwatch API SDK
 
 ## Introduction
diff --git a/bwproject.py b/bwproject.py
index c879cae..3a41d39 100644
--- a/bwproject.py
+++ b/bwproject.py
@@ -59,7 +59,7 @@ class BWUser:
         if "username" in user:
             if username is None:
                 return user["username"], token
-            elif user["username"] == username:
+            elif user["username"].lower() == username.lower():
                 return username, token
             else:
                 raise KeyError("Username " + username + " does not match provided token", user)
@@ -84,8 +84,8 @@ class BWUser:
 
     def _read_auth(self, username, token_path):
         user_tokens = self._read_auth_file(token_path)
-        if username in user_tokens:
-            return self._test_auth(username, user_tokens[username])
+        if username.lower() in user_tokens:
+            return self._test_auth(username, user_tokens[username.lower()])
         else:
             raise KeyError("Token not found in file: " + token_path)
 
diff --git a/setup.py b/setup.py
index 9c1d705..56c9ab2 100644
--- a/setup.py
+++ b/setup.py
@@ -23,15 +23,16 @@ setup(
         'License :: OSI Approved :: MIT License',
 
         'Programming Language :: Python :: 3',
+        'Programming Language :: Python :: 3.2',
         'Programming Language :: Python :: 3.3',
         'Programming Language :: Python :: 3.4',
-        'Programming Language :: Python :: 3.5',
-        'Programming Language :: Python :: 3.6',
-        'Programming Language :: Python :: 3.7'
+        'Programming Language :: Python :: 3.5'
     ],
 
     py_modules=['bwproject', 'bwresources', 'bwdata', 'filters'],
 
-    install_requires=['requests']
+    install_requires=['requests'],
+
+    tests_require=['responses']
 
 )

username with capital letters
I came across an issue when I use the token_path instead of the password to request my project:
BWProject(username=YOUR_ACCOUNT, project=YOUR_PROJECT)

When at the beginning I used  my username and password, the tokens.txt was generated with the username in lowercase (_read_auth_file). 
On the other hand, my username contains capital letters, meaning my user´s json will be returned with these capital letters in the username field, so the _test_auth() method will fail in bwproject.py.

I can think of ways to get around it by making it case sensitive, but I would appreciate some suggestions.

Many thanks in advance!

diff --git a/test/__init__.py b/test/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/test/test_bwproject.py b/test/test_bwproject.py
new file mode 100644
index 0000000..4820262
--- /dev/null
+++ b/test/test_bwproject.py
@@ -0,0 +1,69 @@
+import unittest
+import responses
+import os
+import tempfile
+
+from bwproject import BWProject
+
+
+class TestBWProjectUsernameCaseSensitivity(unittest.TestCase):
+
+    USERNAME = "example@Example.com"
+    ACCESS_TOKEN = "00000000-0000-0000-0000-000000000000"
+    PROJECT_NAME = "Example project"
+    PROJECTS = [
+        {
+            "id": 0,
+            "name": PROJECT_NAME,
+            "description": "",
+            "billableClientId": 0,
+            "billableClientName": "My company",
+            "timezone": "Africa/Abidjan",
+            "billableClientIsPitch": False
+        }
+    ]
+
+    def setUp(self):
+        self.token_path = tempfile.NamedTemporaryFile(suffix='-tokens.txt').name
+
+        responses.add(responses.GET, 'https://api.brandwatch.com/projects',
+                      json={
+                          "resultsTotal": len(self.PROJECTS),
+                          "resultsPage": -1,
+                          "resultsPageSize": -1,
+                          "results": self.PROJECTS
+                      }, status=200)
+
+        responses.add(responses.POST, 'https://api.brandwatch.com/oauth/token',
+                      json={'access_token': self.ACCESS_TOKEN}, status=200)
+
+    def tearDown(self):
+        os.unlink(self.token_path)
+        responses.reset()
+
+
+    @responses.activate
+    def test_lowercase_username(self):
+        self._test_username("example@example.com")
+
+    @responses.activate
+    def test_uppercase_username(self):
+        self._test_username("EXAMPLE@EXAMPLE.COM")
+
+    @responses.activate
+    def test_mixedcase_username(self):
+        self._test_username("eXaMpLe@ExAmPlE.cOm")
+
+    def _test_username(self, username):
+
+        responses.add(responses.GET, 'https://api.brandwatch.com/me', json={"username": username}, status=200)
+
+        BWProject(username=username, project=self.PROJECT_NAME, password="", token_path=self.token_path)
+        try:
+            BWProject(username=username, project=self.PROJECT_NAME, token_path=self.token_path)
+        except KeyError as e:
+            self.fail(e)
+
+
+if __name__ == '__main__':
+    unittest.main()

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest responses
apt-get update apt-get install -y gcc
3.9
requirements/base.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
-e git+https://github.com/BrandwatchLtd/api_sdk.git@0570363bdee1621b85f8290599e0c86c75bcf802#egg=bwapi
certifi==2025.1.31
charset-normalizer==3.4.1
exceptiongroup==1.2.2
idna==3.10
iniconfig==2.1.0
packaging==24.2
pluggy==1.5.0
pytest==8.3.5
PyYAML==6.0.2
requests==2.32.3
responses==0.25.7
tomli==2.2.1
urllib3==2.3.0

name: api_sdk
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=25.0=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - certifi==2025.1.31
      - charset-normalizer==3.4.1
      - exceptiongroup==1.2.2
      - idna==3.10
      - iniconfig==2.1.0
      - packaging==24.2
      - pluggy==1.5.0
      - pytest==8.3.5
      - pyyaml==6.0.2
      - requests==2.32.3
      - responses==0.25.7
      - tomli==2.2.1
      - urllib3==2.3.0
prefix: /opt/conda/envs/api_sdk

test/test_bwproject.py::TestBWProjectUsernameCaseSensitivity::test_mixedcase_username test/test_bwproject.py::TestBWProjectUsernameCaseSensitivity::test_uppercase_username
test/test_bwproject.py::TestBWProjectUsernameCaseSensitivity::test_lowercase_username
setup.py .travis.yml README.md bwproject.py
setup.py .travis.yml README.md bwproject.py