SciPy

Source code for tethne.tests.test_writers_graph

import sys
sys.path.append('../tethne')

import unittest
import tempfile
import os
from xml.etree import ElementTree as ET
import networkx as nx
import csv

from tethne import write_graphml, write_csv
from tethne.writers.graph import to_sif
from tethne.readers.wos import read
from tethne.networks.authors import coauthors

datapath = './tethne/tests/data/wos2.txt'




[docs]class GraphMLTest(unittest.TestCase):
[docs] def setUp(self): self.corpus = read(datapath) self.graph = coauthors(self.corpus) f, self.temp = tempfile.mkstemp(suffix='.graphml')
[docs] def test_write_graphml(self): write_graphml(self.graph, self.temp) self.assertGreater(os.path.getsize(self.temp), 0) try: # Should be well-formed XML. ET.parse(self.temp) except Exception as E: self.fail(E.message) # Can read with networkx GraphML reader. try: rgraph = nx.read_graphml(self.temp) except Exception as E: self.fail(E.message) self.assertTrue(nx.is_isomorphic(self.graph, rgraph))
[docs] def tearDown(self): try: os.remove(self.temp) except WindowsError: pass
[docs]class CSVTest(unittest.TestCase):
[docs] def setUp(self): self.corpus = read(datapath) self.graph = coauthors(self.corpus) self.temp = tempfile.mkdtemp() self.prefix = os.path.join(self.temp, 'textprefix')
[docs] def test_write_csv(self): write_csv(self.graph, self.prefix) self.assertGreater(os.path.getsize(self.prefix + '_nodes.csv'), 0) self.assertGreater(os.path.getsize(self.prefix + '_edges.csv'), 0) try: with open(self.prefix + '_nodes.csv', 'r') as f: reader = csv.reader(f) [ line for line in reader ] except Exception as E: self.fail(E.message) try: with open(self.prefix + '_edges.csv', 'r') as f: reader = csv.reader(f) [ line for line in reader ] except Exception as E: self.fail(E.message)
[docs] def tearDown(self): try: os.remove(self.prefix + '_nodes.csv') os.remove(self.prefix + '_edges.csv') os.rmdir(self.temp) except WindowsError: pass
[docs]class TestToSif(unittest.TestCase): #testing the functionality of to_sif method
[docs] def testBasic(self): self.corpus = read(datapath) self.graph = coauthors(self.corpus) #self.temp = tempfile.mkstemp() #self.prefix = os.path.join(self.temp,'.toSif') f, self.temp = tempfile.mkstemp(suffix='.toSif') to_sif(self.graph,self.temp) self.assertEqual(os.path.getsize(self.temp), 0) #testing the functionality when the graph is multigraph
[docs] def testMultiGraph(self): testGraphMulti = nx.MultiGraph() testGraphMulti.add_edges_from([(1,2),(2,1),(1,3),(2,4,{'color':'blue'}),(3,5)]) f, self.temp = tempfile.mkstemp(suffix='.toSif') to_sif(testGraphMulti,self.temp) self.assertEqual(os.path.getsize(self.temp),0)
[docs] def testGraphZeroEdges(self): testGraphNoEdges = nx.Graph() testGraphNoEdges.add_nodes_from([1,3,5,7]) f, self.temp = tempfile.mkstemp(suffix='.toSif') to_sif(testGraphNoEdges,self.temp) self.assertEqual(os.path.getsize(self.temp),0)
if __name__ == '__main__': unittest.main()