Index: DataLoader/test/cansas1d_badunits.xml
===================================================================
--- DataLoader/test/cansas1d_badunits.xml	(revision fe78c7be16b3ca74072592fdeda007c4a989ce82)
+++ DataLoader/test/cansas1d_badunits.xml	(revision fe78c7be16b3ca74072592fdeda007c4a989ce82)
@@ -0,0 +1,141 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="example.xsl" ?>
+<SASroot version="1.0"
+    xmlns="cansas1d/1.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="cansas1d/1.0 http://svn.smallangles.net/svn/canSAS/1dwg/trunk/cansas1d.xsd"
+    >
+	<SASentry>
+		<Title>Test title</Title>
+		<Run name='run name'>1234</Run>
+		<SASdata>
+			<Idata>
+				<Q unit="1/nm">0.002</Q>
+				<I unit="1/nm">1</I>
+				<Idev unit="1/nm">.003</Idev>
+				<Qdev unit="1/nm">0.001</Qdev>
+				<Qmean unit="1/A"><!-- Qmean is optional --></Qmean>
+				<Shadowfactor><!-- Shadowfactor is optional --></Shadowfactor>
+			</Idata>
+			<Idata>
+				<Q unit="1/nm">0.003</Q>
+				<I unit="1/nm">1.001</I>
+				<Idev unit="1/nm">.004</Idev>
+				<Qdev unit="1/nm">0.002</Qdev>
+				<Qmean unit="1/A"><!-- Qmean is optional --></Qmean>
+				<Shadowfactor><!-- Shadowfactor is optional --></Shadowfactor>
+			</Idata>
+		</SASdata>
+		<SASsample name='my sample'>
+			<ID>SI600-new-long</ID>
+			<thickness unit="mff">0.00103</thickness>
+			<transmission>0.327</transmission>
+			<temperature unit="C">0.0000</temperature>
+			<position>
+				<x unit="nm">10000000.00</x>
+				<y unit="mm">0.00</y>
+			</position>
+			<orientation>
+				<roll unit="rad">0.39269908<!-- was: sample_orientation --></roll>
+				<pitch unit="rad">3.4906585e-4<!-- was: sample_offset_angle --></pitch>
+			</orientation>
+			<details>
+				<!-- was: sample_prep -->
+				http://chemtools.chem.soton.ac.uk/projects/blog/blogs.php/bit_id/2720
+			</details>
+			<details>
+				Some text here
+			</details>
+			
+		</SASsample>
+		<SASinstrument name="TEST instrument">
+			<name>canSAS instrument</name>
+			<SASsource name="source name">
+				<radiation>neutron</radiation>
+				<beam_size name='bm'>
+					<x unit="m">.01200</x>
+					<y unit="micrometer">13000.00</y>
+				</beam_size>
+				<beam_shape>disc</beam_shape>
+				<wavelength unit="nm">0.600</wavelength>
+				<wavelength_min unit="A">02.2</wavelength_min>
+				<wavelength_max unit="A">10.0</wavelength_max>
+				<wavelength_spread unit="percent">
+					14.3
+				</wavelength_spread>
+			</SASsource>
+			<SAScollimation name="test coll name">
+				<length unit='m'> 0.123</length>
+				<aperture name="source" type="radius">
+					<size>
+						<x unit="micron">50000</x>
+					</size>
+					<distance unit="cm">1100.000<!-- was: distance_coll --></distance>
+				</aperture>
+				<aperture name="sample" type="radius">
+					<size name='size name'>
+						<x unit="cm">.1</x>
+					</size>
+				</aperture>
+			</SAScollimation>
+			<SASdetector>
+				<name>fictional hybrid</name>
+				<SDD unit="m">
+					<!-- sample-to-detector distance -->
+					4.150
+				</SDD>
+				<orientation>
+					<roll unit="radian">.0174533</roll>
+					<pitch unit="rad">0.00</pitch>
+					<yaw unit="radian">0.00</yaw>
+				</orientation>
+				<offset>
+					<x unit="nm">1000000</x>
+					<y unit="micron">2000</y>
+				</offset>
+				<beam_center>
+					<x unit="m">.32264</x>
+					<y unit="m">.32768</y>
+				</beam_center>
+				<pixel_size>
+					<x unit="cm">.500</x>
+					<y unit="cm">.500</y>
+				</pixel_size>
+			</SASdetector>
+		</SASinstrument>
+		<SASprocess>
+			<name>spol</name>
+			<date>04-Sep-2007 18:35:02</date>
+			<term name="radialstep" unit="mm">10.000</term>
+			<term name="sector_width" unit="rad">4.1416</term>
+			<term name="sector_orient" unit="degree">0.0</term>
+			<term name="MASK_file">USER:MASK.COM</term>
+			<SASprocessnote>
+				AvA1 0.0000E+00 AsA2 1.0000E+00 XvA3 1.0526E+03 XsA4
+				5.2200E-02 XfA5 0.0000E+00
+			</SASprocessnote>
+			<SASprocessnote>
+				S... 13597 0 2.26E+02 2A 5mM 0%D2O Sbak 13594 0 1.13E+02
+				H2O Buffer
+			</SASprocessnote>
+			<SASprocessnote>V... 13552 3 1.00E+00 H2O5m</SASprocessnote>
+		</SASprocess>
+		<SASprocess>
+			<name>NCNR-IGOR</name>
+			<date>03-SEP-2006 11:42:47</date>
+			<description />
+			<term name="average_type">Circular</term>
+			<term name="SAM_file">SEP06064.SA3_AJJ_L205</term>
+			<term name="BKD_file">SEP06064.SA3_AJJ_L205</term>
+			<term name="EMP_file">SEP06064.SA3_AJJ_L205</term>
+			<term name="DIV_file">SEP06064.SA3_AJJ_L205</term>
+			<term name="MASK_file">SEP06064.SA3_AJJ_L205</term>
+			<term name="ABS:TSTAND">1</term>
+			<term name="ABS:DSTAND" unit="mm">1</term>
+			<term name="ABS:IZERO">230.09</term>
+			<term name="ABS:XSECT" unit="mm">1</term>
+			<SASprocessnote/>
+		</SASprocess>
+		<SASnote />
+	</SASentry>
+</SASroot>
Index: DataLoader/test/utest_abs_reader.py
===================================================================
--- DataLoader/test/utest_abs_reader.py	(revision d00f8ff74790ad97d3fddff0a584009680fdda7d)
+++ DataLoader/test/utest_abs_reader.py	(revision fe78c7be16b3ca74072592fdeda007c4a989ce82)
@@ -13,5 +13,6 @@
     
     def setUp(self):
-        self.data = Loader().load("jan08002.ABS")
+        from DataLoader.readers.abs_reader import Reader
+        self.data = Reader().read("jan08002.ABS")
         
     def test_checkdata(self):
@@ -24,4 +25,5 @@
         """
         self.assertEqual(self.data.filename, "jan08002.ABS")
+        self.assertEqual(self.data.meta_data['loader'], "IGOR 1D")
         
         self.assertEqual(self.data.source.wavelength_unit, 'A')
@@ -69,4 +71,6 @@
         """
         self.assertEqual(self.data.filename, "S2-30dq.d1d")
+        # THIS FILE FORMAT IS CURRENTLY READ BY THE ASCII READER
+        self.assertEqual(self.data.meta_data['loader'], "ASCII")
         self.assertEqual(len(self.data.x), 134)
         self.assertEqual(len(self.data.y), 134)
@@ -93,4 +97,5 @@
         """
         self.assertEqual(self.data.filename, "MAR07232_rest.ASC")
+        self.assertEqual(self.data.meta_data['loader'], "IGOR 2D")
         
         self.assertEqual(self.data.source.wavelength_unit, 'A')
@@ -127,4 +132,5 @@
         """
         self.assertEqual(self.data.filename, "MP_New.sans")
+        self.assertEqual(self.data.meta_data['loader'], "DANSE")
         
         self.assertEqual(self.data.source.wavelength_unit, 'A')
@@ -169,4 +175,6 @@
         
         self.assertEqual(self.data.run[0], "1234")
+        self.assertEqual(self.data.meta_data['loader'], "CanSAS 1D")
+        self.assertEqual(len(self.data.errors), 0)
         
         # Data
@@ -325,4 +333,20 @@
         self._checkdata()
         
+    def test_badunits(self):
+        """
+            Check units.
+            Note that not all units are available.
+        """
+        filename = "cansas1d_badunits.xml"
+        self.data = Loader().load(filename)
+        self.assertEqual(self.data.filename, filename)
+        # The followed should not have been loaded
+        self.assertEqual(self.data.sample.thickness, None)
+        # This one should
+        self.assertEqual(self.data.sample.transmission, 0.327)
+        
+        self.assertEqual(self.data.meta_data['loader'], "CanSAS 1D")
+        self.assertEqual(len(self.data.errors), 1)
+        
         
     def test_slits(self):
@@ -356,4 +380,9 @@
 
 if __name__ == '__main__':
+    import logging
+    logging.basicConfig(level=logging.INFO,
+                        format='%(asctime)s %(levelname)s %(message)s',
+                        filename='utest_abs_reader.log',
+                        filemode='w')
     unittest.main()
    
Index: DataLoader/test/utest_ascii.py
===================================================================
--- DataLoader/test/utest_ascii.py	(revision af76bd97dd976b5b69fb9ec4ee74d0d1fcf40fa6)
+++ DataLoader/test/utest_ascii.py	(revision fe78c7be16b3ca74072592fdeda007c4a989ce82)
@@ -24,4 +24,6 @@
         self.assertEqual(f.x[0],0.002618)
         self.assertEqual(f.x[9],0.0497)
+        
+        self.assertEqual(f.meta_data['loader'],"ASCII")
         
     def test_truncated_1(self):
Index: DataLoader/test/write_test.xml
===================================================================
--- DataLoader/test/write_test.xml	(revision fe78c7be16b3ca74072592fdeda007c4a989ce82)
+++ DataLoader/test/write_test.xml	(revision fe78c7be16b3ca74072592fdeda007c4a989ce82)
@@ -0,0 +1,250 @@
+<?xml version="1.0" ?>
+<SASroot version="1.0" xmlns="cansas1d/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="cansas1d/1.0 http://svn.smallangles.net/svn/canSAS/1dwg/trunk/cansas1d.xsd">
+	<SASentry>
+		<Title>
+			Test title
+		</Title>
+		<Run name="run name">
+			1234
+		</Run>
+		<SASdata>
+			<Idata>
+				<Q unit="1/A">
+					0.02
+				</Q>
+				<I unit="1/cm">
+					1000.0
+				</I>
+				<Qdev unit="1/A">
+					0.01
+				</Qdev>
+				<Idev unit="1/cm">
+					3.0
+				</Idev>
+			</Idata>
+			<Idata>
+				<Q unit="1/A">
+					0.03
+				</Q>
+				<I unit="1/cm">
+					1001.0
+				</I>
+				<Qdev unit="1/A">
+					0.02
+				</Qdev>
+				<Idev unit="1/cm">
+					4.0
+				</Idev>
+			</Idata>
+		</SASdata>
+		<SASsample name="my sample">
+			<ID>
+				SI600-new-long
+			</ID>
+			<thickness unit="mm">
+				1.03
+			</thickness>
+			<transmission>
+				0.327
+			</transmission>
+			<temperature unit="C">
+				0.0
+			</temperature>
+			<details>
+				http://chemtools.chem.soton.ac.uk/projects/blog/blogs.php/bit_id/2720
+			</details>
+			<details>
+				Some text here
+			</details>
+			<position>
+				<x unit="mm">
+					10.0
+				</x>
+				<y unit="mm">
+					0.0
+				</y>
+			</position>
+			<orientation>
+				<roll unit="degree">
+					22.5
+				</roll>
+				<pitch unit="degree">
+					0.02
+				</pitch>
+			</orientation>
+		</SASsample>
+		<SASinstrument>
+			<name>
+				canSAS instrument
+			</name>
+			<SASsource name="source name">
+				<radiation>
+					neutron
+				</radiation>
+				<beam_shape>
+					disc
+				</beam_shape>
+				<beam_size name="bm">
+					<x unit="mm">
+						12.0
+					</x>
+					<y unit="mm">
+						13.0
+					</y>
+				</beam_size>
+				<wavelength unit="A">
+					6.0
+				</wavelength>
+				<wavelength_min unit="nm">
+					0.22
+				</wavelength_min>
+				<wavelength_max unit="nm">
+					1.0
+				</wavelength_max>
+				<wavelength_spread unit="percent">
+					14.3
+				</wavelength_spread>
+			</SASsource>
+			<SAScollimation name="test coll name">
+				<length unit="mm">
+					123.0
+				</length>
+				<aperture name="source" type="radius">
+					<distance unit="mm">
+						11000
+					</distance>
+					<size>
+						<x unit="mm">
+							50.0
+						</x>
+					</size>
+				</aperture>
+				<aperture name="sample" type="radius">
+					<size name="size name">
+						<x unit="mm">
+							1.0
+						</x>
+					</size>
+				</aperture>
+			</SAScollimation>
+			<SASdetector>
+				<name>
+					fictional hybrid
+				</name>
+				<SDD unit="mm">
+					4150
+				</SDD>
+				<offset>
+					<x unit="m">
+						0.001
+					</x>
+					<y unit="m">
+						0.002
+					</y>
+				</offset>
+				<beam_center>
+					<x unit="mm">
+						322.64
+					</x>
+					<y unit="mm">
+						327.68
+					</y>
+				</beam_center>
+				<pixel_size>
+					<x unit="mm">
+						5.0
+					</x>
+					<y unit="mm">
+						5.0
+					</y>
+				</pixel_size>
+				<orientation>
+					<roll unit="degree">
+						1.0
+					</roll>
+					<pitch unit="degree">
+						0.0
+					</pitch>
+					<yaw unit="degree">
+						0.0
+					</yaw>
+				</orientation>
+			</SASdetector>
+		</SASinstrument>
+		<SASprocess>
+			<name>
+				spol
+			</name>
+			<date>
+				04-Sep-2007 18:35:02
+			</date>
+			<description>
+				
+			</description>
+			<term name="radialstep" unit="mm">
+				10.000
+			</term>
+			<term name="sector_width" unit="degree">
+				180.0
+			</term>
+			<term name="sector_orient" unit="degree">
+				0.0
+			</term>
+			<term name="MASK_file">
+				USER:MASK.COM
+			</term>
+			<SASprocessnote>
+				AvA1 0.0000E+00 AsA2 1.0000E+00 XvA3 1.0526E+03 XsA4
+				5.2200E-02 XfA5 0.0000E+00
+			</SASprocessnote>
+			<SASprocessnote>
+				S... 13597 0 2.26E+02 2A 5mM 0%D2O Sbak 13594 0 1.13E+02
+				H2O Buffer
+			</SASprocessnote>
+			<SASprocessnote>
+				V... 13552 3 1.00E+00 H2O5m
+			</SASprocessnote>
+		</SASprocess>
+		<SASprocess>
+			<name>
+				NCNR-IGOR
+			</name>
+			<date>
+				03-SEP-2006 11:42:47
+			</date>
+			<description>
+				
+			</description>
+			<term name="average_type">
+				Circular
+			</term>
+			<term name="SAM_file">
+				SEP06064.SA3_AJJ_L205
+			</term>
+			<term name="BKD_file">
+				SEP06064.SA3_AJJ_L205
+			</term>
+			<term name="EMP_file">
+				SEP06064.SA3_AJJ_L205
+			</term>
+			<term name="DIV_file">
+				SEP06064.SA3_AJJ_L205
+			</term>
+			<term name="MASK_file">
+				SEP06064.SA3_AJJ_L205
+			</term>
+			<term name="ABS:TSTAND">
+				1
+			</term>
+			<term name="ABS:DSTAND" unit="mm">
+				1
+			</term>
+			<term name="ABS:IZERO">
+				230.09
+			</term>
+			<term name="ABS:XSECT" unit="mm">
+				1
+			</term>
+		</SASprocess>
+	</SASentry>
+</SASroot>
