import json
import unittest

from network_test_fixture import network
from test_network_docker import fixture_ipam_evidence


class FixtureEvidenceTests(unittest.TestCase):
    def test_owned_fixture_ipam_projection_retains_presence_and_empty_fields_without_raw_details(self):
        observed = network('fixture', '172.18.0.0/24')
        observed['IPAM']['Config'][0]['IPRange'] = ''
        observed['Labels']['private'] = 'PRIVATE_SENTINEL'
        observed['Options']['private'] = 'PRIVATE_SENTINEL'
        observed['Containers'] = {'PRIVATE_SENTINEL': {'Name': 'PRIVATE_SENTINEL'}}
        result = fixture_ipam_evidence(observed)
        self.assertEqual(result['config'], [{'Subnet': '172.18.0.0/24', 'Gateway': '172.18.0.1',
                                           'IPRange': '', 'auxiliary_address_count': 0}])
        self.assertEqual(result['option_count'], 0)
        self.assertNotIn('PRIVATE_SENTINEL', json.dumps(result))


if __name__ == '__main__':
    unittest.main()
