#!/usr/bin/env python # encoding: utf-8 """ test_engine.py Created by Paul Makepeace on 2011-04-22. Copyright (c) 2011 Real Programmers. All rights reserved. """ import json import os import sys import unittest import urllib from google.refine import Facet, Engine, FacetsResponse class FacetTest(unittest.TestCase): def test_init(self): facet = Facet('column name') engine = Engine(facet) self.assertTrue(str(engine)) def test_serialize(self): engine = Engine() engine_json = engine.as_json() self.assertEqual(engine_json, '{"facets": [], "mode": "row-based"}') def test_add_facet(self): facet = Facet(column='Party Code') engine = Engine(facet) engine.add_facet(Facet(column='Ethnicity')) self.assertEqual(len(engine.facets), 2) self.assertEqual(len(engine), 2) def test_selections(self): facet = Facet('column name') facet.include('element') self.assertEqual(len(facet.selections), 1) facet.include('element 2') self.assertEqual(len(facet.selections), 2) facet.exclude('element') self.assertEqual(len(facet.selections), 1) facet.reset() self.assertEqual(len(facet.selections), 0) def test_facets_response(self): response = """{"facets":[{"name":"Party Code","expression":"value","columnName":"Party Code","invert":false,"choices":[{"v":{"v":"D","l":"D"},"c":3700,"s":false},{"v":{"v":"R","l":"R"},"c":1613,"s":false},{"v":{"v":"N","l":"N"},"c":15,"s":false},{"v":{"v":"O","l":"O"},"c":184,"s":false}],"blankChoice":{"s":false,"c":1446}}],"mode":"row-based"}""" response = FacetsResponse(json.loads(response)) facets = response.facets self.assertEqual(facets[0].choices['D'].count, 3700) self.assertEqual(facets[0].blank_choice.count, 1446) if __name__ == '__main__': unittest.main()