def test_successful_import(self): data = csv_fixture("successful_import") model = csv_fixture_model() importer = CSVImporter(data, model) importer.run() dataset = Dataset.find_one() h.assert_true(dataset is not None, "Dataset should not be None") h.assert_equal(dataset.name, "test-csv") entries = list(Entry.find({"dataset.name": dataset.name})) h.assert_equal(len(entries), 4) entry = Entry.find_one({"provenance.line": 2}) h.assert_true(entry is not None, "Entry with name could not be found") h.assert_equal(entry.amount, 130000.0)
def _make_entry(self, loader, **kwargs): from openspending.model import Entry entry = {"name": "Test Entry", "amount": 1000.00, "time": {"from": {"year": 2009, "day": 20090101}}} entry.update(kwargs) if "from" not in entry: entry["from"] = loader.create_entity(u"Test From Entity") if "to" not in entry: entry["to"] = loader.create_entity(u"Test To Entity") spec = loader.create_entry(**entry) new = Entry.find_one(spec) return new
def test_create_entry_returns_query_spec(self): from bson import ObjectId loader = self._make_loader() entry = {'name': 'one', 'amount': 1000.00, 'from': loader.create_entity(u'From Entity'), 'to': loader.create_entity(u'To Entity'), 'first': u'first', 'second': u'second', 'extra': u'extra'} query_spec = loader.create_entry(**entry) h.assert_true(isinstance(query_spec['_id'], ObjectId)) fetched_entry = Entry.find_one(query_spec) h.assert_equal(fetched_entry['name'], 'one')