diff --git a/.gitignore b/.gitignore
index 4347bb8..6317d70 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,6 @@
 venv/
 .idea/
 __pycache__/
+.tox/
+*.pyc
+.cache/
diff --git a/.travis.yml b/.travis.yml
index 5db1b2d..c76dcfb 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,3 +1,4 @@
+sudo: false
 language: python
 python:
     - "2.6"
@@ -5,4 +6,5 @@
     - "3.3"
     - "3.4"
     - "3.5"
-script: python ./setup.py install && python ./test/test.py
+install: pip install tox-travis
+script: tox
diff --git a/dev-requirements.txt b/dev-requirements.txt
new file mode 100644
index 0000000..bd253fe
--- /dev/null
+++ b/dev-requirements.txt
@@ -0,0 +1 @@
+pytest==3.0.7
diff --git a/pytoml/writer.py b/pytoml/writer.py
index 7380350..31fee2f 100644
--- a/pytoml/writer.py
+++ b/pytoml/writer.py
@@ -1,5 +1,5 @@
 from __future__ import unicode_literals
-import io, datetime, sys
+import io, datetime, math, sys
 
 if sys.version_info[0] == 3:
     long = int
@@ -61,7 +61,10 @@
     if isinstance(v, int) or isinstance(v, long):
         return unicode(v)
     if isinstance(v, float):
-        return repr(v)
+        if math.isnan(v) or math.isinf(v):
+            raise ValueError("{0} is not a valid TOML value".format(v))
+        else:
+            return repr(v)
     elif isinstance(v, unicode) or isinstance(v, bytes):
         return _escape_string(v)
     elif isinstance(v, datetime.datetime):
diff --git a/test/test_parser.py b/test/test_parser.py
new file mode 100644
index 0000000..f0fc792
--- /dev/null
+++ b/test/test_parser.py
@@ -0,0 +1,24 @@
+from __future__ import unicode_literals
+
+import sys
+if sys.version_info < (2, 7):
+    from StringIO import StringIO
+else:
+    from io import StringIO
+    
+import pytest
+
+import pytoml as toml
+
+
+def test_name_of_fileobj_is_used_in_errors():
+    source = StringIO("[")
+    source.name = "<source>"
+    error = pytest.raises(toml.TomlError, lambda: toml.load(source))
+    assert error.value.filename == "<source>"
+
+
+def test_when_fileobj_has_no_name_attr_then_repr_of_fileobj_is_used_in_errors():
+    source = StringIO("[")
+    error = pytest.raises(toml.TomlError, lambda: toml.load(source))
+    assert error.value.filename == repr(source)
diff --git a/test/test_writer.py b/test/test_writer.py
new file mode 100644
index 0000000..a0c7434
--- /dev/null
+++ b/test/test_writer.py
@@ -0,0 +1,15 @@
+from __future__ import unicode_literals
+
+import pytest
+
+import pytoml as toml
+
+
+@pytest.mark.parametrize("value", [
+    float("NaN"),
+    float("Inf"),
+    -float("Inf"),
+])
+def test_attempting_to_write_non_number_floats_raises_error(value):
+    error = pytest.raises(ValueError, lambda: toml.dumps({"value": value}))
+    assert str(error.value) == "{0} is not a valid TOML value".format(value)
diff --git a/tox.ini b/tox.ini
new file mode 100644
index 0000000..2adf554
--- /dev/null
+++ b/tox.ini
@@ -0,0 +1,7 @@
+[tox]
+envlist = py26,py27,py33,py34,py35
+[testenv]
+deps = -r{toxinidir}/dev-requirements.txt
+commands=
+    python ./test/test.py
+    py.test test
