def test_task_has_command_to_launch_dworkers(self):
        offer = MagicMock()
        offer.url.address.ip = 'localhost'
        offer.slave_id = MagicMock()
        offer.slave_id.value = 'slave-id'

        mesos_task = TaskDirector(offer,WorkerTask).make_task_with_id('task-id')

        expect(mesos_task.command.value).to(equal('dworker localhost:8787'))
    def test_task_has_command_to_launch_dcenter(self):
        offer = MagicMock()
        offer.hostname = 'localhost'
        offer.slave_id = MagicMock()
        offer.slave_id.value = 'slave-id'

        mesos_task = TaskDirector(offer,SchedulerTask).make_task_with_id('task-id')

        expect(mesos_task.command.value).to(equal('dscheduler'))
    def setUp(self):
        self.driver = MagicMock()

        offer = MagicMock()
        offer.hostname = 'localhost'
        offer.slave_id = MagicMock()
        offer.slave_id.value = 'slave-id'
        offer.id = 1

        self.offers = [offer for x in range(9)]

        self.id1 = uuid.uuid4()
        self.id2 = uuid.uuid4()
        self.id_generator = iter([self.id1, self.id2]).next
    def test_create_task_configures_resources_with_offers(self):
        offer = MagicMock()
        offer.url.address.ip = 'localhost'
        offer.slave_id = MagicMock()
        offer.slave_id.value = 'slave-id'

        mesos_task = TaskDirector(offer,WorkerTask).make_task_with_id('task-id')

        expect(mesos_task.slave_id.value).to(equal('slave-id'))
        expect(mesos_task.task_id.value).to(equal('task-id'))
        expect(len(mesos_task.resources)).to(equal(2))

        expect(mesos_task.resources[0].name).to(equal('cpus'))
        expect(mesos_task.resources[0].type).to(equal(mesos_pb2.Value.SCALAR))
        expect(mesos_task.resources[0].scalar.value).to(equal(2))

        expect(mesos_task.resources[1].name).to(equal('mem'))
        expect(mesos_task.resources[1].type).to(equal(mesos_pb2.Value.SCALAR))
        expect(mesos_task.resources[1].scalar.value).to(equal(128))