# Path: k8s/client.py
# class NotFound(K8sClientException):
#     """The resource was not found, and the operation could not be completed"""
# 
# Path: k8s/models/common.py
# class ObjectMeta(Model):
#     annotations = Field(dict)
#     creationTimestamp = ReadOnlyField(datetime.datetime)
#     deletionGracePeriodSeconds = ReadOnlyField(int)
#     deletionTimestamp = ReadOnlyField(datetime.datetime)
#     finalizers = ListField(six.text_type)
#     generateName = Field(six.text_type)
#     generation = ReadOnlyField(int)
#     labels = Field(dict)
#     name = Field(six.text_type)
#     namespace = Field(six.text_type, "default")
#     ownerReferences = ListField(OwnerReference)
#     resourceVersion = ReadOnlyField(six.text_type)
#     selfLink = ReadOnlyField(six.text_type)
#     uid = ReadOnlyField(six.text_type)
# 
# class LocalObjectReference(Model):
#     name = Field(six.text_type)
# 
# Path: k8s/models/service_account.py
# class ServiceAccount(Model):
#     class Meta:
#         list_url = "/api/v1/serviceaccounts"
#         url_template = "/api/v1/namespaces/{namespace}/serviceaccounts/{name}"
# 
#     metadata = Field(ObjectMeta)
#     imagePullSecrets = ListField(LocalObjectReference)
#     secrets = ListField(LocalObjectReference)
#     automountServiceAccountToken = Field(bool)


import mock
import pytest
from k8s.client import NotFound
from k8s.models.common import ObjectMeta, LocalObjectReference
from k8s.models.service_account import ServiceAccount
    mock_response = mock.Mock()
    mock_response.json.return_value = {
        "apiVersion": "v1",
        "kind": "ServiceAccount",
        "metadata": {
            "creationTimestamp": "2017-09-08T13:37:00Z",
            "generation": 1,
            "labels": {
                "test": "true"
            },
            "name": NAME,
            "namespace": NAMESPACE,
            "resourceVersion": "42",
            "selfLink": _uri(NAMESPACE, NAME),
            "uid": "d8f1ba26-b182-11e6-a364-fa163ea2a9c4"
        },
        'automountServiceAccountToken': "true",
        'secrets': [{
            'name': 'my-secret'
        }],
        'imagePullSecrets': [{
            'name': 'my-image-pull-secret'
        }]
    }
    return mock_response


def _create_default_service_account():
    object_meta = ObjectMeta(name=NAME, namespace=NAMESPACE, labels={"test": "true"})
    secrets = [LocalObjectReference(name="my-secret")]

# Path: k8s/client.py
# class NotFound(K8sClientException):
#     """The resource was not found, and the operation could not be completed"""
# 
# Path: k8s/models/common.py
# class ObjectMeta(Model):
#     annotations = Field(dict)
#     creationTimestamp = ReadOnlyField(datetime.datetime)
#     deletionGracePeriodSeconds = ReadOnlyField(int)
#     deletionTimestamp = ReadOnlyField(datetime.datetime)
#     finalizers = ListField(six.text_type)
#     generateName = Field(six.text_type)
#     generation = ReadOnlyField(int)
#     labels = Field(dict)
#     name = Field(six.text_type)
#     namespace = Field(six.text_type, "default")
#     ownerReferences = ListField(OwnerReference)
#     resourceVersion = ReadOnlyField(six.text_type)
#     selfLink = ReadOnlyField(six.text_type)
#     uid = ReadOnlyField(six.text_type)
# 
# class LocalObjectReference(Model):
#     name = Field(six.text_type)
# 
# Path: k8s/models/service_account.py
# class ServiceAccount(Model):
#     class Meta:
#         list_url = "/api/v1/serviceaccounts"
#         url_template = "/api/v1/namespaces/{namespace}/serviceaccounts/{name}"
# 
#     metadata = Field(ObjectMeta)
#     imagePullSecrets = ListField(LocalObjectReference)
#     secrets = ListField(LocalObjectReference)
#     automountServiceAccountToken = Field(bool)


# Path: tests/k8s/test_service_account.py
import mock
import pytest
from k8s.client import NotFound
from k8s.models.common import ObjectMeta, LocalObjectReference
from k8s.models.service_account import ServiceAccount

    mock_response = mock.Mock()
    mock_response.json.return_value = {
        "apiVersion": "v1",
        "kind": "ServiceAccount",
        "metadata": {
            "creationTimestamp": "2017-09-08T13:37:00Z",
            "generation": 1,
            "labels": {
                "test": "true"
            },
            "name": NAME,
            "namespace": NAMESPACE,
            "resourceVersion": "42",
            "selfLink": _uri(NAMESPACE, NAME),
            "uid": "d8f1ba26-b182-11e6-a364-fa163ea2a9c4"
        },
        'automountServiceAccountToken': "true",
        'secrets': [{
            'name': 'my-secret'
        }],
        'imagePullSecrets': [{
            'name': 'my-image-pull-secret'
        }]
    }
    return mock_response


def _create_default_service_account():
    object_meta = ObjectMeta(name=NAME, namespace=NAMESPACE, labels={"test": "true"})
    secrets = [LocalObjectReference(name="my-secret")]

    image_pull_secrets = [LocalObjectReference(name="my-image-pull-secret")]