Index: test/corfunc/test/utest_corfunc.py
===================================================================
--- test/corfunc/test/utest_corfunc.py	(revision 86ba9d6936227c2eedc84b1d5c8350d04de53a4e)
+++ test/corfunc/test/utest_corfunc.py	(revision 3a473ef5db2c94d409d9882677b1d5ca138b975d)
@@ -4,4 +4,5 @@
 from __future__ import division, print_function
 
+import os.path
 import unittest
 import time
@@ -11,4 +12,8 @@
 from sas.sascalc.corfunc.corfunc_calculator import CorfuncCalculator
 from sas.sascalc.dataloader.data_info import Data1D
+
+
+def find(filename):
+    return os.path.join(os.path.dirname(__file__), filename)
 
 
@@ -31,5 +36,5 @@
         self.extrapolation = None
         self.transformation = None
-        self.results = [np.loadtxt(filename+"_out.txt").T[2]
+        self.results = [np.loadtxt(find(filename+"_out.txt")).T[2]
                         for filename in ("gamma1", "gamma3", "idf")]
 
@@ -69,12 +74,14 @@
         while True:
             time.sleep(0.001)
-            if not self.calculator.transform_isrunning():
+            if (not self.calculator.transform_isrunning() and
+                self.transformation is not None):
                 break
 
-    def transform_callback(self, transforms):
-        transform1, transform3, idf = transforms
+        transform1, transform3, idf = self.transformation
         self.assertIsNotNone(transform1)
         self.assertAlmostEqual(transform1.y[0], 1)
         self.assertAlmostEqual(transform1.y[-1], 0, 5)
+
+    def transform_callback(self, transforms):
         self.transformation = transforms
 
@@ -110,5 +117,5 @@
 
 def load_data(filename="98929.txt"):
-    data = np.loadtxt(filename, dtype=np.float64)
+    data = np.loadtxt(find(filename), dtype=np.float64)
     q = data[:,0]
     iq = data[:,1]
Index: test/fileconverter/test/utest_nxcansas_writer.py
===================================================================
--- test/fileconverter/test/utest_nxcansas_writer.py	(revision 248ff7332a99edb391f42db2a242a497473df452)
+++ test/fileconverter/test/utest_nxcansas_writer.py	(revision 3a473ef5db2c94d409d9882677b1d5ca138b975d)
@@ -3,9 +3,14 @@
 
 import os
-import pylint
+import os.path
 import unittest
 import warnings
 
 warnings.simplefilter("ignore")
+
+
+def find(filename):
+    return os.path.join(os.path.dirname(__file__), filename)
+
 
 class nxcansas_writer(unittest.TestCase):
@@ -14,8 +19,8 @@
         self.loader = Loader()
         self.writer = NXcanSASWriter()
-        self.read_file_1d = "cansas1d.xml"
-        self.write_file_1d = "export1d.h5"
-        self.read_file_2d = "exp18_14_igor_2dqxqy.dat"
-        self.write_file_2d = "export2d.h5"
+        self.read_file_1d = find("cansas1d.xml")
+        self.write_file_1d = find("export1d.h5")
+        self.read_file_2d = find("exp18_14_igor_2dqxqy.dat")
+        self.write_file_2d = find("export2d.h5")
 
         self.data_1d = self.loader.load(self.read_file_1d)[0]
Index: test/pr_inversion/test/utest_explorer.py
===================================================================
--- test/pr_inversion/test/utest_explorer.py	(revision 959eb0181ad06828a748f04512f953aad5b31659)
+++ test/pr_inversion/test/utest_explorer.py	(revision 3a473ef5db2c94d409d9882677b1d5ca138b975d)
@@ -3,14 +3,20 @@
 """
 
+import os.path
 import unittest, math, numpy
 from utest_invertor import load
 from sas.sascalc.pr.invertor import Invertor
 from sas.sascalc.pr.distance_explorer import DistExplorer
-        
+
+
+def find(filename):
+    return os.path.join(os.path.dirname(__file__), filename)
+
+
 class TestExplorer(unittest.TestCase):
             
     def setUp(self):
         self.invertor = Invertor()
-        x, y, err = load('sphere_80.txt')
+        x, y, err = load(find('sphere_80.txt'))
         
         # Choose the right d_max...
Index: test/pr_inversion/test/utest_invertor.py
===================================================================
--- test/pr_inversion/test/utest_invertor.py	(revision cb62bd55ae79395ac6e01d8b2077f4d496625c41)
+++ test/pr_inversion/test/utest_invertor.py	(revision 3a473ef5db2c94d409d9882677b1d5ca138b975d)
@@ -10,8 +10,13 @@
 
 import os
+import os.path
 import unittest
 import math
 import numpy
 from sas.sascalc.pr.invertor import Invertor
+
+
+def find(filename):
+    return os.path.join(os.path.dirname(__file__), filename)
 
 
@@ -28,5 +33,5 @@
             self.x_in[i] = 1.0*(i+1)
        
-        x, y, err = load("sphere_80.txt")
+        x, y, err = load(find("sphere_80.txt"))
 
         # Choose the right d_max...
@@ -192,5 +197,5 @@
             Test an inversion for which we know the answer
         """
-        x, y, err = load("sphere_80.txt")
+        x, y, err = load(find("sphere_80.txt"))
 
         # Choose the right d_max...
@@ -247,5 +252,5 @@
             Test an inversion for which we know the answer
         """
-        x, y, err = load("sphere_80.txt")
+        x, y, err = load(find("sphere_80.txt"))
 
         # Choose the right d_max...
@@ -312,5 +317,5 @@
             Test error condition where a point has q=0
         """
-        x, y, err = load("sphere_80.txt")
+        x, y, err = load(find("sphere_80.txt"))
         x[0] = 0.0
         
@@ -329,5 +334,5 @@
             Test error condition where a point has q<0
         """
-        x, y, err = load("sphere_80.txt")
+        x, y, err = load(find("sphere_80.txt"))
         x[0] = -0.2
         
@@ -353,5 +358,5 @@
             Test error condition where a point has q<0
         """
-        x, y, err = load("sphere_80.txt")
+        x, y, err = load(find("sphere_80.txt"))
         y[0] = 0.0
         
@@ -374,5 +379,5 @@
         
     def no_test_time(self):
-        x, y, err = load("sphere_80.txt")
+        x, y, err = load(find("sphere_80.txt"))
 
         # Choose the right d_max...
@@ -406,5 +411,5 @@
         
     def test_save(self):
-        x, y, err = load("sphere_80.txt")
+        x, y, err = load(find("sphere_80.txt"))
 
         # Choose the right d_max...
@@ -464,5 +469,5 @@
             Test an inversion for which we know the answer
         """
-        x, y, err = load("data_error_1.txt")
+        x, y, err = load(find("data_error_1.txt"))
 
         # Choose the right d_max...
@@ -482,5 +487,5 @@
             Have zero as an error should raise an exception
         """
-        x, y, err = load("data_error_2.txt")
+        x, y, err = load(find("data_error_2.txt"))
 
         # Set data
@@ -495,5 +500,5 @@
             Test an inversion for which we know the answer
         """
-        x, y, err = load("data_error_1.txt")
+        x, y, err = load(find("data_error_1.txt"))
 
         # Set data
@@ -511,5 +516,5 @@
             An exception should be raised.
         """
-        x, y, err = load("data_error_3.txt")
+        x, y, err = load(find("data_error_3.txt"))
 
         # Set data
@@ -521,5 +526,5 @@
             Should not complain or crash.
         """
-        x, y, err = load("data_error_4.txt")
+        x, y, err = load(find("data_error_4.txt"))
 
         # Set data
@@ -535,5 +540,5 @@
             Makes not sense, but should not complain or crash.
         """
-        x, y, err = load("data_error_5.txt")
+        x, y, err = load(find("data_error_5.txt"))
 
         # Set data
@@ -549,5 +554,5 @@
             Makes not sense, but should not complain or crash.
         """
-        x, y, err = load("data_error_6.txt")
+        x, y, err = load(find("data_error_6.txt"))
 
         # Set data
Index: test/sascalculator/test/utest_sas_gen.py
===================================================================
--- test/sascalculator/test/utest_sas_gen.py	(revision 1d014cbb271bb612a92607b84c582f19f50b2b11)
+++ test/sascalculator/test/utest_sas_gen.py	(revision 3a473ef5db2c94d409d9882677b1d5ca138b975d)
@@ -2,9 +2,17 @@
 Unit tests for the sas_gen
 """
+
+import os.path
 import warnings
 warnings.simplefilter("ignore")
 
 import unittest
+import numpy as np
+
 from sas.sascalc.calculator import sas_gen
+
+
+def find(filename):
+    return os.path.join(os.path.dirname(__file__), filename)
 
 
@@ -20,5 +28,5 @@
         Test .sld file loaded
         """
-        f = self.sldloader.read("sld_file.sld")
+        f = self.sldloader.read(find("sld_file.sld"))
         self.assertEqual(f.pos_x[0], -40.5)
         self.assertEqual(f.pos_y[0], -13.5)
@@ -29,5 +37,5 @@
         Test .pdb file loaded
         """
-        f = self.pdbloader.read("c60.pdb")
+        f = self.pdbloader.read(find("c60.pdb"))
         self.assertEqual(f.pos_x[0], -0.733)
         self.assertEqual(f.pos_y[0], -1.008)
@@ -38,5 +46,5 @@
         Test .omf file loaded
         """
-        f = self.omfloader.read("A_Raw_Example-1.omf")
+        f = self.omfloader.read(find("A_Raw_Example-1.omf"))
         output = sas_gen.OMF2SLD()
         output.set_data(f)
@@ -48,4 +56,16 @@
         self.assertEqual(output.pos_z[0], 0.0)
 
+    def test_calculator(self):
+        """
+        Test that the calculator calculates.
+        """
+        f = self.omfloader.read(find("A_Raw_Example-1.omf"))
+        omf2sld = sas_gen.OMF2SLD()
+        omf2sld.set_data(f)
+        model = sas_gen.GenSAS()
+        model.set_sld_data(omf2sld.output)
+        x = np.linspace(0, 0.1, 11)[1:]
+        model.runXY([x, x])
+
 
 if __name__ == '__main__':
Index: test/sascalculator/test/utest_slit_length_calculator.py
===================================================================
--- test/sascalculator/test/utest_slit_length_calculator.py	(revision b09095a7f7ba6ae5e7ee28a9d240400222cbae19)
+++ test/sascalculator/test/utest_slit_length_calculator.py	(revision 3a473ef5db2c94d409d9882677b1d5ca138b975d)
@@ -3,8 +3,13 @@
 """
 
+import os.path
 import unittest
 from sas.sascalc.dataloader.readers.ascii_reader import Reader
 from sas.sascalc.calculator.slit_length_calculator import SlitlengthCalculator \
     as calculator
+
+
+def find(filename):
+    return os.path.join(os.path.dirname(__file__), filename)
 
 
@@ -19,5 +24,5 @@
             Test slit_length_calculator"
         """
-        list = self.reader.read("beam profile.DAT")
+        list = self.reader.read(find("beam profile.DAT"))
         self.assertTrue(len(list) == 1)
         f = list[0]
Index: test/sasdataloader/test/utest_abs_reader.py
===================================================================
--- test/sasdataloader/test/utest_abs_reader.py	(revision 574adc767a9e86744546f8edd6a23dc4f81914ad)
+++ test/sasdataloader/test/utest_abs_reader.py	(revision 3a473ef5db2c94d409d9882677b1d5ca138b975d)
@@ -16,10 +16,14 @@
 
 
+def find(filename):
+    return os.path.join(os.path.dirname(__file__), filename)
+
+
 class abs_reader(unittest.TestCase):
 
     def setUp(self):
         reader = AbsReader()
-        data = reader.read("jan08002.ABS")
-        self.data= data[0]
+        self.data_list = reader.read(find("jan08002.ABS"))
+        self.data = self.data_list[0]
 
     def test_abs_checkdata(self):
@@ -31,5 +35,5 @@
             tests won't pass
         """
-        self.assertEqual(self.data.filename, "jan08002.ABS")
+        self.assertEqual(os.path.basename(self.data.filename), "jan08002.ABS")
         self.assertEqual(self.data.meta_data['loader'], "IGOR 1D")
 
@@ -49,7 +53,7 @@
 
         self.assertEqual(self.data.y_unit, 'cm^{-1}')
-        self.assertEqual(self.data.x[0], 0.002618)
-        self.assertEqual(self.data.x[1], 0.007854)
-        self.assertEqual(self.data.x[2], 0.01309)
+        self.assertEqual(self.data.x[0], 0.008082)
+        self.assertEqual(self.data.x[1], 0.0275)
+        self.assertEqual(self.data.x[2], 0.02762)
         self.assertEqual(self.data.x[126], 0.5828)
 
@@ -69,6 +73,17 @@
     def test_generic_loader(self):
         # the generic loader should work as well
-        data = Loader().load("jan08002.ABS")
+        data = Loader().load(find("jan08002.ABS"))
         self.assertEqual(data[0].meta_data['loader'], "IGOR 1D")
+
+    def test_usans_negative_dxl(self):
+        data_abs = Loader().load(find("sam14_cor.ABS"))
+        data_cor = Loader().load(find("sam14_cor.cor"))
+        for i in range(0, len(data_abs) - 1):
+            self.assertEquals(data_abs.x[i], data_cor.x[i])
+            self.assertEquals(data_abs.y[i], data_cor.y[i])
+            self.assertEquals(data_abs.dxl[i], data_cor.dxl[i])
+            self.assertEquals(data_abs.dxw[i], data_cor.dxw[i])
+            self.assertTrue(data_abs.dxl > 0)
+
 
 class DanseReaderTests(unittest.TestCase):
@@ -76,6 +91,6 @@
     def setUp(self):
         reader = DANSEReader()
-        data = reader.read("MP_New.sans")
-        self.data = data[0]
+        self.data_list = reader.read(find("MP_New.sans"))
+        self.data = self.data_list[0]
 
     def test_checkdata(self):
@@ -87,5 +102,6 @@
             tests won't pass
         """
-        self.assertEqual(self.data.filename, "MP_New.sans")
+        self.assertEqual(len(self.data_list), 1)
+        self.assertEqual(os.path.basename(self.data.filename), "MP_New.sans")
         self.assertEqual(self.data.meta_data['loader'], "DANSE")
 
@@ -113,5 +129,6 @@
     def test_generic_loader(self):
         # the generic loader should work as well
-        data = Loader().load("MP_New.sans")
+        data = Loader().load(find("MP_New.sans"))
+        self.assertEqual(len(data), 1)
         self.assertEqual(data[0].meta_data['loader'], "DANSE")
 
@@ -121,14 +138,15 @@
     def setUp(self):
         reader = CANSASReader()
-        data = reader.read("cansas1d.xml")
-        self.data = data[0]
+        self.data_list = reader.read(find("cansas1d.xml"))
+        self.data = self.data_list[0]
 
     def test_generic_loader(self):
         # the generic loader should work as well
-        data = Loader().load("cansas1d.xml")
+        data = Loader().load(find("cansas1d.xml"))
+        self.assertEqual(len(data), 1)
         self.assertEqual(data[0].meta_data['loader'], "CanSAS XML 1D")
 
     def test_cansas_checkdata(self):
-        self.assertEqual(self.data.filename, "cansas1d.xml")
+        self.assertEqual(os.path.basename(self.data.filename), "cansas1d.xml")
         self._checkdata()
 
@@ -141,4 +159,5 @@
             tests won't pass
         """
+        self.assertEqual(len(self.data_list), 1)
         self.assertEqual(self.data.run[0], "1234")
         self.assertEqual(self.data.meta_data['loader'], "CanSAS XML 1D")
@@ -278,7 +297,8 @@
 
         filename = "write_test.xml"
-        r.write(filename, self.data)
-        data = Loader().load(filename)
+        r.write(find(filename), self.data)
+        data = Loader().load(find(filename))
         self.data = data[0]
+        self.assertEqual(len(data), 1)
         self.assertEqual(self.data.filename, filename)
         self._checkdata()
@@ -292,6 +312,7 @@
         """
         filename = "cansas1d_units.xml"
-        data = CANSASReader().read(filename)
+        data = CANSASReader().read(find(filename))
         self.data = data[0]
+        self.assertEqual(len(data), 1)
         self.assertEqual(self.data.filename, filename)
         self._checkdata()
@@ -303,6 +324,7 @@
         """
         filename = "cansas1d_badunits.xml"
-        data = CANSASReader().read(filename)
+        data = CANSASReader().read(find(filename))
         self.data = data[0]
+        self.assertEqual(len(data), 1)
         self.assertEqual(self.data.filename, filename)
         # The followed should not have been loaded
@@ -319,6 +341,8 @@
         """
         filename = "cansas1d_slit.xml"
-        data = CANSASReader().read(filename)
+        data = CANSASReader().read(find(filename))
         self.data = data[0]
+        self.assertEqual(len(data), 1)
+        self.assertEqual(len(self.data_list), 1)
         self.assertEqual(self.data.filename, filename)
         self.assertEqual(self.data.run[0], "1234")
Index: test/sasdataloader/test/utest_ascii.py
===================================================================
--- test/sasdataloader/test/utest_ascii.py	(revision a78a02fe90f1c962f523301685c143a27f11ba7d)
+++ test/sasdataloader/test/utest_ascii.py	(revision 3a473ef5db2c94d409d9882677b1d5ca138b975d)
@@ -2,5 +2,8 @@
     Unit tests for the ascii (n-column) reader
 """
+
+import os.path
 import warnings
+import math
 warnings.simplefilter("ignore")
 
@@ -9,17 +12,21 @@
 
 
+def find(filename):
+    return os.path.join(os.path.dirname(__file__), filename)
+
+
 class ABSReaderTests(unittest.TestCase):
     
     def setUp(self):
         self.loader = Loader()
-        self.f1_list = self.loader.load("ascii_test_1.txt")
+        self.f1_list = self.loader.load(find("ascii_test_1.txt"))
         self.f1 = self.f1_list[0]
-        self.f2_list = self.loader.load("ascii_test_2.txt")
+        self.f2_list = self.loader.load(find("ascii_test_2.txt"))
         self.f2 = self.f2_list[0]
-        self.f3_list = self.loader.load("ascii_test_3.txt")
+        self.f3_list = self.loader.load(find("ascii_test_3.txt"))
         self.f3 = self.f3_list[0]
-        self.f4_list = self.loader.load("ascii_test_4.abs")
+        self.f4_list = self.loader.load(find("ascii_test_4.abs"))
         self.f4 = self.f4_list[0]
-        self.f5_list = self.loader.load("ascii_test_5.txt")
+        self.f5_list = self.loader.load(find("ascii_test_5.txt"))
         self.f5 = self.f5_list[0]
 
@@ -29,4 +36,9 @@
         """
         # The length of the data is 10
+        self.assertEqual(len(self.f1_list), 1)
+        self.assertEqual(len(self.f2_list), 1)
+        self.assertEqual(len(self.f3_list), 1)
+        self.assertEqual(len(self.f4_list), 1)
+        self.assertEqual(len(self.f5_list), 1)
         self.assertEqual(len(self.f1.x), 10)
         self.assertEqual(self.f1.x[0],0.002618)
@@ -94,9 +106,28 @@
         f = None
         try:
-            f = self.loader.load("ascii_test_6.txt")
+            f = self.loader.load(find("ascii_test_6.txt"))
         # The length of the data is 5
         except:
             self.assertEqual(f, None)
 
+    def test_nan_values(self):
+        """
+        Test loading an ascii data file with nan values saved in x, y, or dy.
+        """
+        f_1d = self.loader.load(find("nans_in_1d_data.dat"))[0]
+        f_2d = self.loader.load(find("nans_in_2d_data.DAT"))[0]
+        for i in range(0, len(f_1d.x) - 1):
+            self.assertFalse(math.isnan(f_1d.x[i]))
+            self.assertFalse(math.isnan(f_1d.y[i]))
+            self.assertFalse(math.isnan(f_1d.dy[i]))
+        f_2d.data = f_2d.data.flatten()
+        f_2d.qx_data = f_2d.qx_data.flatten()
+        f_2d.qy_data = f_2d.qy_data.flatten()
+        for i in range(0, len(f_2d.data) - 1):
+            self.assertFalse(math.isnan(f_2d.data[i]))
+            self.assertFalse(math.isnan(f_2d.qx_data[i]))
+            self.assertFalse(math.isnan(f_2d.qy_data[i]))
+
+
 if __name__ == '__main__':
     unittest.main()
Index: test/sasdataloader/test/utest_averaging.py
===================================================================
--- test/sasdataloader/test/utest_averaging.py	(revision 2a52b0e66afd6a932a14feb9cf9377a9ffe3767a)
+++ test/sasdataloader/test/utest_averaging.py	(revision 3a473ef5db2c94d409d9882677b1d5ca138b975d)
@@ -13,4 +13,8 @@
                                                   SlabY, get_q,
                                                   reader2D_converter)
+
+
+def find(filename):
+    return os.path.join(os.path.dirname(__file__), filename)
 
 
@@ -102,7 +106,7 @@
 
     def setUp(self):
-        filepath = os.path.join(os.path.dirname(
-            os.path.realpath(__file__)), 'MAR07232_rest.h5')
-        self.data = Loader().load(filepath)[0]
+        filepath = find('MAR07232_rest.h5')
+        self.data_list = Loader().load(filepath)
+        self.data = self.data_list[0]
 
     def test_ring(self):
@@ -117,8 +121,9 @@
 
         o = r(self.data)
-        filepath = os.path.join(os.path.dirname(
-            os.path.realpath(__file__)), 'ring_testdata.txt')
-        answer = Loader().load(filepath)[0]
-
+        filepath = find('ring_testdata.txt')
+        answer_list = Loader().load(filepath)
+        answer = answer_list[0]
+
+        self.assertEqual(len(answer_list), 1)
         for i in range(r.nbins_phi - 1):
             self.assertAlmostEqual(o.x[i + 1], answer.x[i], 4)
@@ -137,6 +142,5 @@
         o = r(self.data)
 
-        filepath = os.path.join(os.path.dirname(
-            os.path.realpath(__file__)), 'avg_testdata.txt')
+        filepath = find('avg_testdata.txt')
         answer = Loader().load(filepath)[0]
         for i in range(r.nbins_phi):
@@ -173,6 +177,5 @@
         o = r(self.data)
 
-        filepath = os.path.join(os.path.dirname(
-            os.path.realpath(__file__)), 'slabx_testdata.txt')
+        filepath = find('slabx_testdata.txt')
         answer = Loader().load(filepath)[0]
         for i in range(len(o.x)):
@@ -192,6 +195,5 @@
         o = r(self.data)
 
-        filepath = os.path.join(os.path.dirname(
-            os.path.realpath(__file__)), 'slaby_testdata.txt')
+        filepath = find('slaby_testdata.txt')
         answer = Loader().load(filepath)[0]
         for i in range(len(o.x)):
@@ -219,6 +221,5 @@
         o = r(self.data)
 
-        filepath = os.path.join(os.path.dirname(
-            os.path.realpath(__file__)), 'ring_testdata.txt')
+        filepath = find('ring_testdata.txt')
         answer = Loader().load(filepath)[0]
         for i in range(len(o.x)):
@@ -237,6 +238,5 @@
         o = r(self.data)
 
-        filepath = os.path.join(os.path.dirname(
-            os.path.realpath(__file__)), 'sectorphi_testdata.txt')
+        filepath = find('sectorphi_testdata.txt')
         answer = Loader().load(filepath)[0]
         for i in range(len(o.x)):
@@ -255,6 +255,5 @@
         o = r(self.data)
 
-        filepath = os.path.join(os.path.dirname(
-            os.path.realpath(__file__)), 'sectorq_testdata.txt')
+        filepath = find('sectorq_testdata.txt')
         answer = Loader().load(filepath)[0]
         for i in range(len(o.x)):
Index: test/sasdataloader/test/utest_cansas.py
===================================================================
--- test/sasdataloader/test/utest_cansas.py	(revision f00072f71539decaf40f09518557ad03ca39a587)
+++ test/sasdataloader/test/utest_cansas.py	(revision 3a473ef5db2c94d409d9882677b1d5ca138b975d)
@@ -31,23 +31,28 @@
 CANSAS_NS = CansasConstants.CANSAS_NS
 
+
+def find(filename):
+    return os.path.join(os.path.dirname(__file__), filename)
+
+
 class cansas_reader_xml(unittest.TestCase):
 
     def setUp(self):
         self.loader = Loader()
-        self.xml_valid = "cansas_test_modified.xml"
-        self.xml_invalid = "cansas_test.xml"
-        self.cansas1d_badunits = "cansas1d_badunits.xml"
-        self.cansas1d = "cansas1d.xml"
-        self.cansas1d_slit = "cansas1d_slit.xml"
-        self.cansas1d_units = "cansas1d_units.xml"
-        self.cansas1d_notitle = "cansas1d_notitle.xml"
-        self.isis_1_0 = "ISIS_1_0.xml"
-        self.isis_1_1 = "ISIS_1_1.xml"
-        self.isis_1_1_notrans = "ISIS_1_1_notrans.xml"
-        self.isis_1_1_doubletrans = "ISIS_1_1_doubletrans.xml"
-        self.schema_1_0 = "cansas1d_v1_0.xsd"
-        self.schema_1_1 = "cansas1d_v1_1.xsd"
-        self.write_1_0_filename = "isis_1_0_write_test.xml"
-        self.write_1_1_filename = "isis_1_1_write_test.xml"
+        self.xml_valid = find("cansas_test_modified.xml")
+        self.xml_invalid = find("cansas_test.xml")
+        self.cansas1d_badunits = find("cansas1d_badunits.xml")
+        self.cansas1d = find("cansas1d.xml")
+        self.cansas1d_slit = find("cansas1d_slit.xml")
+        self.cansas1d_units = find("cansas1d_units.xml")
+        self.cansas1d_notitle = find("cansas1d_notitle.xml")
+        self.isis_1_0 = find("ISIS_1_0.xml")
+        self.isis_1_1 = find("ISIS_1_1.xml")
+        self.isis_1_1_notrans = find("ISIS_1_1_notrans.xml")
+        self.isis_1_1_doubletrans = find("ISIS_1_1_doubletrans.xml")
+        self.schema_1_0 = find("cansas1d_v1_0.xsd")
+        self.schema_1_1 = find("cansas1d_v1_1.xsd")
+        self.write_1_0_filename = find("isis_1_0_write_test.xml")
+        self.write_1_1_filename = find("isis_1_1_write_test.xml")
 
     def get_number_of_entries(self, dictionary, name, i):
@@ -254,8 +259,8 @@
     def setUp(self):
         self.loader = Loader()
-        self.datafile_basic = "simpleexamplefile.h5"
-        self.datafile_multiplesasentry = "cansas_1Dand2D_samedatafile.h5"
-        self.datafile_multiplesasdata = "cansas_1Dand2D_samesasentry.h5"
-        self.datafile_multiplesasdata_multiplesasentry = "cansas_1Dand2D_multiplesasentry_multiplesasdata.h5"
+        self.datafile_basic = find("simpleexamplefile.h5")
+        self.datafile_multiplesasentry = find("cansas_1Dand2D_samedatafile.h5")
+        self.datafile_multiplesasdata = find("cansas_1Dand2D_samesasentry.h5")
+        self.datafile_multiplesasdata_multiplesasentry = find("cansas_1Dand2D_multiplesasentry_multiplesasdata.h5")
 
     def test_real_data(self):
Index: test/sasdataloader/test/utest_extension_registry.py
===================================================================
--- test/sasdataloader/test/utest_extension_registry.py	(revision dcb91cf83e474bdbe1c788d87690ca5f5e7841cb)
+++ test/sasdataloader/test/utest_extension_registry.py	(revision 3a473ef5db2c94d409d9882677b1d5ca138b975d)
@@ -13,13 +13,18 @@
 logger = logging.getLogger(__name__)
 
+
+def find(filename):
+    return os.path.join(os.path.dirname(__file__), filename)
+
+
 class ExtensionRegistryTests(unittest.TestCase):
 
     def setUp(self):
-        self.valid_file = "valid_cansas_xml.xml"
-        self.valid_file_wrong_known_ext = "valid_cansas_xml.txt"
-        self.valid_file_wrong_unknown_ext = "valid_cansas_xml.xyz"
+        self.valid_file = find("valid_cansas_xml.xml")
+        self.valid_file_wrong_known_ext = find("valid_cansas_xml.txt")
+        self.valid_file_wrong_unknown_ext = find("valid_cansas_xml.xyz")
         shutil.copyfile(self.valid_file, self.valid_file_wrong_known_ext)
         shutil.copyfile(self.valid_file, self.valid_file_wrong_unknown_ext)
-        self.invalid_file = "cansas1d_notitle.xml"
+        self.invalid_file = find("cansas1d_notitle.xml")
 
         self.loader = Loader()
Index: test/sasdataloader/test/utest_generic_file_reader_class.py
===================================================================
--- test/sasdataloader/test/utest_generic_file_reader_class.py	(revision beba407166875d49f41ca9bd2cf10087b2575153)
+++ test/sasdataloader/test/utest_generic_file_reader_class.py	(revision 3a473ef5db2c94d409d9882677b1d5ca138b975d)
@@ -8,5 +8,7 @@
 import numpy as np
 
-from sas.sascalc.dataloader.data_info import DataInfo, plottable_1D
+from sas.sascalc.dataloader.data_info import DataInfo, plottable_1D, Data1D
+from sas.sascalc.dataloader.loader import Loader
+from sas.sascalc.dataloader.loader_exceptions import NoKnownLoaderException
 from sas.sascalc.dataloader.file_reader_base_class import FileReader
 
@@ -14,29 +16,66 @@
 
 
+def find(filename):
+    return os.path.join(os.path.dirname(__file__), filename)
+
+
 class GenericFileReaderTests(unittest.TestCase):
 
     def setUp(self):
-        self.reader = FileReader()
-        self.bad_file = "ACB123.txt"
-        self.good_file = "123ABC.txt"
-        self.msg = "Unable to find file at: {}\n".format(self.bad_file)
-        self.msg += "Please check your file path and try again."
-        x = np.zeros(0)
-        y = np.zeros(0)
-        self.reader.current_dataset = plottable_1D(x, y)
-        self.reader.current_datainfo = DataInfo()
-        self.reader.send_to_output()
+        self.reader = TestFileReader()
+        self.bad_file = find("ACB123.txt")
+        self.good_file = find("123ABC.txt")
+        self.generic_reader = Loader()
+        self.deprecated_file_type = find("FEB18012.ASC")
 
     def test_bad_file_path(self):
-        output = self.reader.read(self.bad_file)
-        self.assertEqual(len(output[0].errors), 1)
-        self.assertEqual(output[0].errors[0], self.msg)
+        self.assertRaises(NoKnownLoaderException, self.reader.read,
+                          self.bad_file)
 
     def test_good_file_path(self):
-        f_open = open(self.good_file, 'w')
-        f_open.close()
+        f = open(self.good_file, 'w')
+        f.write('123ABC exists!')
+        f.close()
         output = self.reader.read(self.good_file)
-        self.assertEqual(len(output[0].errors), 1)
-        self.assertEqual(output[0].errors[0], self.msg)
+        self.assertEqual(len(output), 1)
+        self.assertEqual(output[0].meta_data["blah"], '123ABC exists!')
+
+    def test_old_file_types(self):
+        f = self.generic_reader.load(self.deprecated_file_type)
+        last_f = f[0]
+        if hasattr(last_f, "errors"):
+            self.assertEquals(len(last_f.errors), 1)
+        else:
+            self.fail("Errors did not propogate to the file properly.")
+
+    def test_same_file_unknown_extensions(self):
+        # Five files, all with the same content, but different file extensions
+        no_ext = find("test_data//TestExtensions")
+        not_xml = find("test_data//TestExtensions.notxml")
+        # Deprecated extensions
+        asc_dep = find("test_data//TestExtensions.asc")
+        nxs_dep = find("test_data//TestExtensions.nxs")
+        # Native extension as a baseline
+        xml_native = find("test_data//TestExtensions.xml")
+        # Load the files and check contents
+        no_ext_load = self.generic_reader.load(no_ext)
+        asc_load = self.generic_reader.load(asc_dep)
+        nxs_load = self.generic_reader.load(nxs_dep)
+        not_xml_load = self.generic_reader.load(not_xml)
+        xml_load = self.generic_reader.load(xml_native)
+        self.check_unknown_extension(no_ext_load[0])
+        self.check_unknown_extension(asc_load[0])
+        self.check_unknown_extension(nxs_load[0])
+        self.check_unknown_extension(not_xml_load[0])
+        self.check_unknown_extension(xml_load[0])
+        # Be sure the deprecation warning is passed with the file
+        self.assertEquals(len(asc_load[0].errors), 1)
+        self.assertEquals(len(nxs_load[0].errors), 1)
+
+    def check_unknown_extension(self, data):
+        self.assertTrue(isinstance(data, Data1D))
+        self.assertEquals(len(data.x), 138)
+        self.assertEquals(data.sample.ID, "TK49 c10_SANS")
+        self.assertEquals(data.meta_data["loader"], "CanSAS XML 1D")
 
     def tearDown(self):
@@ -45,2 +84,15 @@
         if os.path.isfile(self.good_file):
             os.remove(self.good_file)
+
+class TestFileReader(FileReader):
+    def get_file_contents(self):
+        """
+        Reader specific class to access the contents of the file
+        All reader classes that inherit from FileReader must implement
+        """
+        x = np.zeros(0)
+        y = np.zeros(0)
+        self.current_dataset = plottable_1D(x,y)
+        self.current_datainfo = DataInfo()
+        self.current_datainfo.meta_data["blah"] = self.nextline()
+        self.send_to_output()
Index: test/sasdataloader/test/utest_red2d_reader.py
===================================================================
--- test/sasdataloader/test/utest_red2d_reader.py	(revision 248ff7332a99edb391f42db2a242a497473df452)
+++ test/sasdataloader/test/utest_red2d_reader.py	(revision 3a473ef5db2c94d409d9882677b1d5ca138b975d)
@@ -10,8 +10,14 @@
 import os.path
 
+
+def find(filename):
+    return os.path.join(os.path.dirname(__file__), filename)
+
+
 class abs_reader(unittest.TestCase):
 
     def setUp(self):
         self.loader = Loader()
+        self.data_list = self.loader.load(find("exp18_14_igor_2dqxqy.dat"))
 
     def test_checkdata(self):
@@ -19,6 +25,7 @@
             Test .DAT file loaded as IGOR/DAT 2D Q_map
         """
-        f = self.loader.load("exp18_14_igor_2dqxqy.dat")[0]
+        f = self.data_list[0]
         # The length of the data is 10
+        self.assertEqual(len(self.data_list), 1)
         self.assertEqual(len(f.qx_data),  36864)
         self.assertEqual(f.qx_data[0],-0.03573497)
Index: test/sasdataloader/test/utest_sesans.py
===================================================================
--- test/sasdataloader/test/utest_sesans.py	(revision a78a02fe90f1c962f523301685c143a27f11ba7d)
+++ test/sasdataloader/test/utest_sesans.py	(revision 3a473ef5db2c94d409d9882677b1d5ca138b975d)
@@ -3,4 +3,5 @@
 """
 
+import os.path
 import unittest
 from sas.sascalc.dataloader.loader_exceptions import FileContentsException,\
@@ -8,4 +9,9 @@
 from sas.sascalc.dataloader.readers.sesans_reader import Reader
 from sas.sascalc.dataloader.loader import  Loader
+
+
+def find(filename):
+    return os.path.join(os.path.dirname(__file__), filename)
+
 
 class sesans_reader(unittest.TestCase):
@@ -19,7 +25,8 @@
             Test .SES in the full loader to make sure that the file type is correctly accepted
         """
-        file = Loader().load("sesans_examples/sphere2micron.ses")
+        file = Loader().load(find("sesans_examples/sphere2micron.ses"))
         f = file[0]
         # self.assertEqual(f, 5)
+        self.assertEqual(len(file), 1)
         self.assertEqual(len(f.x), 40)
         self.assertEqual(f.x[0], 391.56)
@@ -37,6 +44,7 @@
             Test .SES loading on a TOF dataset
         """
-        file = self.loader("sesans_examples/sphere_isis.ses")
+        file = self.loader(find("sesans_examples/sphere_isis.ses"))
         f = file[0]
+        self.assertEqual(len(file), 1)
         self.assertEqual(len(f.x), 57)
         self.assertEqual(f.x[-1], 19303.4)
@@ -54,5 +62,5 @@
             FileContentsException,
             self.loader,
-            "sesans_examples/sesans_no_data.ses")
+            find("sesans_examples/sesans_no_data.ses"))
 
     def test_sesans_no_spin_echo_unit(self):
@@ -63,5 +71,5 @@
             FileContentsException,
             self.loader,
-            "sesans_examples/no_spin_echo_unit.ses")
+            find("sesans_examples/no_spin_echo_unit.ses"))
 
     def test_sesans_future_version(self):
@@ -72,5 +80,5 @@
             FileContentsException,
             self.loader,
-            "sesans_examples/next_gen.ses")
+            find("sesans_examples/next_gen.ses"))
 
     def test_sesans_mandatory_headers(self):
@@ -81,5 +89,5 @@
             FileContentsException,
             self.loader,
-            "sesans_examples/no_wavelength.ses")
+            find("sesans_examples/no_wavelength.ses"))
 
     def test_sesans_columns_match_headers(self):
@@ -90,5 +98,5 @@
             FileContentsException,
             self.loader,
-            "sesans_examples/too_many_headers.ses")
+            find("sesans_examples/too_many_headers.ses"))
 
 if __name__ == "__main__":
Index: test/sasguiframe/test/utest_manipulations.py
===================================================================
--- test/sasguiframe/test/utest_manipulations.py	(revision 959eb0181ad06828a748f04512f953aad5b31659)
+++ test/sasguiframe/test/utest_manipulations.py	(revision 3a473ef5db2c94d409d9882677b1d5ca138b975d)
@@ -15,8 +15,12 @@
 
 
+def find(filename):
+    return os.path.join(os.path.dirname(__file__), filename)
+
+
 class DataInfoTests(unittest.TestCase):
 
     def setUp(self):
-        data = Loader().load("cansas1d.xml")
+        data = Loader().load(find("cansas1d.xml"))
         self.data = data[0]
 
@@ -35,5 +39,5 @@
 
     def setUp(self):
-        data = Loader().load("cansas1d.xml")
+        data = Loader().load(find("cansas1d.xml"))
         self.data = data[0]
 
Index: test/sasinvariant/test/utest_data_handling.py
===================================================================
--- test/sasinvariant/test/utest_data_handling.py	(revision 9a5097cd1c76689d1f997b85ba43d12a95d8f243)
+++ test/sasinvariant/test/utest_data_handling.py	(revision 3a473ef5db2c94d409d9882677b1d5ca138b975d)
@@ -8,4 +8,6 @@
 copyright 2010, University of Tennessee
 """
+
+import os.path
 import unittest
 import math
@@ -15,5 +17,10 @@
 
 from sas.sascalc.invariant import invariant
-    
+
+
+def find(filename):
+    return os.path.join(os.path.dirname(__file__), filename)
+
+
 class TestLinearFit(unittest.TestCase):
     """
@@ -94,5 +101,5 @@
     """
     def setUp(self):
-        data = Loader().load("latex_smeared_slit.xml")
+        data = Loader().load(find("latex_smeared_slit.xml"))
         self.data = data[0]
         self.data.dxl = None
@@ -676,3 +683,2 @@
             value  = math.fabs(test_y[i]- temp[i])/temp[i]
             self.assert_(value < 0.001)                
-                      
Index: test/sasinvariant/test/utest_use_cases.py
===================================================================
--- test/sasinvariant/test/utest_use_cases.py	(revision b09095a7f7ba6ae5e7ee28a9d240400222cbae19)
+++ test/sasinvariant/test/utest_use_cases.py	(revision 3a473ef5db2c94d409d9882677b1d5ca138b975d)
@@ -4,4 +4,6 @@
 """
 #TODO: there's no test for smeared extrapolation
+
+import os.path
 import unittest
 from sas.sascalc.dataloader.loader import  Loader
@@ -9,4 +11,8 @@
 
 
+def find(filename):
+    return os.path.join(os.path.dirname(__file__), filename)
+
+
 class Data1D:
     pass
@@ -18,5 +24,5 @@
     """
     def setUp(self):
-        self.data_list = Loader().load("linefittest.txt")
+        self.data_list = Loader().load(find("linefittest.txt"))
         self.data = self.data_list[0]
 
@@ -57,5 +63,5 @@
     """
     def setUp(self):
-        self.data_list = Loader().load("linefittest_no_weight.txt")
+        self.data_list = Loader().load(find("linefittest_no_weight.txt"))
         self.data = self.data_list[0]
 
@@ -96,5 +102,5 @@
     """
     def setUp(self):
-        self.data_list = Loader().load("PolySpheres.txt")
+        self.data_list = Loader().load(find("PolySpheres.txt"))
         self.data = self.data_list[0]
 
@@ -278,5 +284,5 @@
     def setUp(self):
         # data with smear info
-        list = Loader().load("latex_smeared.xml")
+        list = Loader().load(find("latex_smeared.xml"))
         self.data_q_smear = list[0]
 
