Basic unit tests, and wercker support.

This commit is contained in:
2014-08-14 18:21:54 +01:00
parent de79c27765
commit 62d50cfbfe
6 changed files with 129 additions and 1 deletions

View File

@@ -1,6 +1,8 @@
dropbot
=======
[![wercker status](https://app.wercker.com/status/76f99d586d9f2fcd532e31fb0de2ab6c/m "wercker status")](https://app.wercker.com/project/bykey/76f99d586d9f2fcd532e31fb0de2ab6c)
A XMPP bot to provide simple services to NOG8S and Predditors in general
Setup

View File

@@ -113,7 +113,10 @@ class Map(networkx.Graph):
def get_system_name(self, system_id):
"""Returns the name of the provided system id"""
return self.node[system_id]['name']
try:
return self.node[system_id]['name']
except KeyError:
pass
def get_system_id(self, name):
"""Returns the system id of the named system"""

50
setup.py Normal file
View File

@@ -0,0 +1,50 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
try:
from setuptools import setup
except ImportError:
from distutils.core import setup
readme = open('README.md').read()
requirements = [
# TODO: put package requirements here
]
test_requirements = [
# TODO: put package test requirements here
]
setup(
name='dropbot',
version='0.1a',
description='A XMPP bot to provide simple services to NOG8S and Predditors in general',
long_description=readme,
author='Andrew Williams',
author_email='andy@tensixtyone.com',
url='https://github.com/nikdoof/dropbot/',
packages=[
'dropbot',
],
include_package_data=True,
install_requires=requirements,
license="BSD",
zip_safe=False,
classifiers=[
'Development Status :: 2 - Pre-Alpha',
'Intended Audience :: Developers',
'License :: OSI Approved :: BSD License',
'Natural Language :: English',
"Programming Language :: Python :: 2",
'Programming Language :: Python :: 2.6',
'Programming Language :: Python :: 2.7',
],
test_suite='tests',
tests_require=test_requirements,
entry_points = {
'console_scripts': ['dropbot=dropbot.cli:main'],
}
)

1
tests/__init__.py Normal file
View File

@@ -0,0 +1 @@
__author__ = 'nikdoof'

60
tests/test_map.py Normal file
View File

@@ -0,0 +1,60 @@
from unittest import TestCase
from dropbot.map import Map
import pkgutil
class MapTestCase(TestCase):
def setUp(self):
self.map = Map.from_json(pkgutil.get_data('dropbot', 'data/map.json'))
def test_load_from_package_data(self):
m = Map.from_json(pkgutil.get_data('dropbot', 'data/map.json'))
self.assertIsNotNone(m)
def test_get_system_name(self):
self.assertEquals(self.map.get_system_name(123), None)
self.assertEqual(self.map.get_system_name(30000142), 'Jita')
def test_get_system_id(self):
self.assertEqual(self.map.get_system_id('Llamatron'), None)
self.assertEqual(self.map.get_system_id('Jita'), 30000142)
def test_get_systems(self):
self.assertEquals(len(self.map.get_systems('Jita')), 1)
self.assertEquals(len(self.map.get_systems('Ji')), 14)
self.assertEquals(len(self.map.get_systems('J')), 576)
self.assertEquals(len(self.map.get_systems('123435345345')), 0)
def test_system_distance(self):
self.assertEqual(self.map.system_distance(30000142, 30000144), 2.10268108033618)
self.assertEqual(self.map.system_distance(30000142, 30000222), 9.334275248404591)
self.assertEqual(self.map.system_distance(30000142, 30000536), 39.15289747780095)
self.assertRaises(Exception, self.map.system_distance, (1, 2))
def test_route_gate(self):
r = self.map.route_gate(30001161, 30001198)
self.assertEqual(len(r), 9)
self.assertListEqual(r, [30001161, 30001158, 30001160, 30001154, 30001157, 30001155, 30001156, 30001162, 30001198])
def test_route_jump(self):
pass
def test_route_jump_distance(self):
pass
def test_route_jump_isotopes(self):
pass
def test_neighbors_gate(self):
pass
def test_neighbors_jump(self):
pass
def test_jump_bridge_addition(self):
# HED-GP to GE-8
self.assertGreater(len(self.map.route_gate(30001161, 30001198)), 2)
self.map.add_jumpbridge(30001161, 30001198)
r = self.map.route_gate(30001161, 30001198)
self.assertEqual(len(r), 2)
self.assertListEqual(r, [30001161, 30001198])

12
wercker.yml Normal file
View File

@@ -0,0 +1,12 @@
box: wercker/python
build:
steps:
- virtualenv:
name: Setup virtual environment
- pip-install:
name: Install requirements
auto_run_wheel: True
- script:
name: Run unit testing
code: |
python setup.py test